簡體   English   中英

R: for 循環與 data.table 庫

[英]R: for loop with data.table library

我使用的library(data.table)我願做一for循環計算的mean1: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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM