如何解决是否有R函数可以在不同的数据表中创建新列?
DT <- data.table (A=c(1,1,2,3,4,5),B=c(200,210,300,420,289,365,587,250,110,500,800),C=c(0.6,0.35,0.6,0.85,0.22,0.36,0.39,0.31,0.33,0.58,0.66))
DT_Split <- split(DT,DT$A)
Table1<- DT_Split$`1`
Table2<- DT_Split$`2`
Table3<- DT_Split$`3`
Table4<- DT_Split$`4`
Table5<- DT_Split$`5`
因此,我有5个来自DT的表。 我想通过使用函数在每张表中添加一列GH。 我可以使用R函数吗? 因此,如果我有10个带有另一个数据框的表,那么我可以使用此功能而无需为每个表手动添加。
预先感谢, 米拉德(Milad)
解决方法
如果要对数据帧列表进行操作,可以使用lapply
。例如,如果您想在列表的每个元素中添加一个新列(名为new_column
),并添加一个值(new_value
)
lapply(DT_Split,function(x) {
x$new_column <- 'new_value'
x
}) -> DT_new
通过这种方式,您可以对列表中的每个数据框执行多项操作,而无需手动对每个数据框进行操作。
对于OP提到的特定功能,我们可以做:
lapply(DT_Split,function(x) {
x[,B := cumsum(c(TRUE,diff(A) < 0))]
x
}) -> DT_new
或者由于这是一个分组操作,所以我们也可以先按组执行然后拆分。
DT[,diff(A) < 0)),A]
DT_Split <- split(DT,DT$A)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。