私は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)) )
}
結果では、平均= 6であり、sdとseの両方が「NA」であると読み取られます...明らかに、私が考えていたものではありません。
for ループを取り除き、列名 ("gene1") を手動で挿入すると、次のようになります。
summary <- ddply(Data, .(Strain), summarise,
mean = mean(gene1),
sd = sd(gene1),
se = sd(gene1) / sqrt(length(gene1)) )
今では正しい結果が得られるようです。誰かがこの問題について私を啓発し、私が間違っていることを教えてもらえますか?