微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否有R函数可以在不同的数据表中创建新列?

如何解决是否有R函数可以在不同的数据表中创建新列?

我有一个数据帧DT。它通过一个变量分为不同的表。

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 举报,一经查实,本站将立刻删除。