【发布时间】:2015-03-30 19:35:03
【问题描述】:
我有一个数据表,我想在其中计算每个 id 的以“数量”开头的变量组的平均值。
以数量开头的变量数量可能会有所不同,但在我的真实数据中它们远远超过 100(并且一些变量具有 NA 值)。
id variable amountA amountB amountC amountD
1 A 8 7 6 2
2 B 6 2 1 2
3 C 6 6 9 4
4 D 1 6 2 7
在我的数据中我尝试过没有成功:
DT[,testvar := apply(DT[ ,grepl("amount",names(DT))],1,mean)]
DT[,testvar := mean(DT[ ,grepl("amount",names(DT))],na.rm=TRUE), by = idvar]
我正在尝试使用 .EACHI 解决它,但我还没有弄清楚。任何想法或评论都非常感谢。
示例表:
structure(list(id = 1:4, variable = structure(1:4, .Label = c("A",
"B", "C", "D"), class = "factor"), amountA = c(8L, 6L, 6L, 1L
), amountB = c(7L, 2L, 6L, 6L), amountC = c(6L, 1L, 9L, 2L),
amountD = c(2L, 2L, 4L, 7L)), .Names = c("id", "variable",
"amountA", "amountB", "amountC", "amountD"), class = "data.frame", row.names = c(NA,
-4L))
【问题讨论】:
-
检查HTML vignettes,尤其是
Introduction to data.table小插图中的.SD和.SDcols部分。
标签: r loops data.table