我是 R 和 stackoverflow 的新手,所以如果问题或其格式不理想,我很抱歉......
我正在尝试使用 ddply 从矩阵中获取一些基本统计信息,并且我想通过使用 for -loop 来加快处理速度。不幸的是,这并不像我想象的那么容易......
Strain gene1 gene2 gene3 . . .
A 2.6336700 1.42802 0.935742
A 2.0634700 2.31232 1.096320
A 2.5798600 2.75138 0.714647
B 2.6031200 1.31374 1.214920
B 2.8319400 1.30260 1.191770
B 1.9796000 1.74199 1.056490
C 2.4030300 1.20324 1.069800
.
.
.
----------
for (n in c("gene1","gene2","gene3","gene4")) {
summary <- ddply(Data, .(Strain), summarise,
mean = mean(n),
sd = sd(n),
se = sd(n) / sqrt(length(n)) )
}
结果显示 mean = 6 并且 sd 和 se 都是“NA”......显然不是我的想法。
如果我摆脱 for -loop 并手动插入列名(“gene1”):
summary <- ddply(Data, .(Strain), summarise,
mean = mean(gene1),
sd = sd(gene1),
se = sd(gene1) / sqrt(length(gene1)) )
现在它似乎给了我正确的结果。有人可以在这件事上启发我并告诉我我做错了什么吗?