【发布时间】:2019-07-05 11:09:42
【问题描述】:
假设,我在 R 中有一个 data.table。我想将它转换为一个列表,其中每个元素都是一个单独的 data.table,它只包含一行。然后我有一个应用于每个单行数据表的函数。我想 rbind 输出。
我尝试了许多版本的 apply 系列,但无法正常工作。
我想执行以下操作,但使用应用函数作为我的真实数据。表非常大并且有很多。而且,实际的功能要复杂得多。
DT <- data.table(
ID = c("b","a","c"),
a = 1:3,
b = 7:9,
c = 13:15
)
DT1<-DT[1]
DT2<-DT[2]
DT3<-DT[3]
list<-list(DT1, DT2, DT3)
myfunction<-function(D){
return(rbind(D, D))
}
DT1new<-myfunction(list[[1]])
DT2new<-myfunction(list[[2]])
DT3new<-myfunction(list[[3]])
result<-rbind(DT1new, DT2new, DT3new)
result
【问题讨论】:
-
应用程序是什么?您要寻找的最终结果是什么?
-
谢谢,我稍微改了一下问题。现在应该很清楚了!
-
你需要
DT[rep(1:nrow(DT), each = 2)]和DT[DT[, rep(.I, each = 2)]]一样吗? -
实际功能远不止重复行。而且只需要一行data.tables。
-
@maja 我仍然相信您可以绕过第一步,但如果没有进一步的信息就无法提供详细的线索。
标签: r list data.table apply rows