0

私はここで別の R 問題で立ち往生しています。2000 を超える観測値と 50 列を含む次のレイアウトのデータ フレームがあります。

group <- c("X","X","X","X","Y","Y","Y","Y","Z","Z","Z","Z")
subgroup <- c("A","B","A","B","A","B","A","B","A","B","A","B")
obs1 <- c(rnorm(12,mean=10))
obs2 <- c(rnorm(12,mean=20))
e <- data.frame(group,subgroup,obs1,obs2)

私が欲しいのは、次のような特定のグループ x サブグループ相互作用のすべての観測値の合計を示すデータフレームです: column1=group column2=subgroup column2=obs1 の合計、column4=合計 obs2 ...

グループ、サブグループ、および列のラベルは保持する必要があります。私は試した:

for(i in levels(e$group)){test[i,]<-as.matrix(Matrix::colSums(e[,3:4]))}

しかし、これはエラーにつながります。おそらくあなたは、私が R コーディングに詳しくないことに気付くでしょう :)

4

1 に答える 1

0

あなたのコメントから判断すると、このような集計をすばやく、非常に簡単な構文で処理できる「data.table」パッケージを調べてください。

この場合、次のようなことを試すことができます。

library(data.table)
E <- data.table(e)
E[, lapply(.SD, sum), by = c("group", "subgroup"), .SDcols = 3:4]
于 2013-07-03T16:34:03.953 に答える