[英]R: for loop with data.table library
我使用的library(data.table)
我愿做一for
循环计算的mean
列1:4
,根据col5
值。
colnames(DT) # "col1" "col2" "col3" "col4" "col5"
for (i in 1:4){
o=colnames(DT)[[i]]
l=DT[,mean(o), by=col5]
print(l)
}
问题是DT
不将colnames
作为character
向量(“col”)。 任何建议表示赞赏。
阅读 data.table 小插图。
library(data.table)
set.seed(42)
DT <- data.table(matrix(rnorm(100), ncol=4))
setnames(DT, paste0("col", 1:4))
DT[, col5 := rep(1:5, 5)]
DT[, lapply(.SD, mean), by = col5]
DT[, lapply(.SD, mean), by = col5, .SDcols = paste0("col", 2:3)]
尝试:
DT[,list(mean1=mean(col1), mean2=mean(col2), mean3=mean(col3), mean4=mean(col4)),by=col5]
如果列太多:
attach(DT)
for(i in 1:4) print(DT[,mean(get(colnames(DT)[i])),by=DT[,5]])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.