2012-03-13 10 views
1

誰でも助けてくれますか? 標準偏差とZ値を計算しました。複数の値をcsvファイル内の異なる列に書き込むR

これらをRのさまざまな列のcsvファイルに書き込む方法を理解しようとしています。私は約90の異なる標準偏差値と90のzscore値を持っています。 私はすべての標準偏差値を1列に、すべてのzスコアを2列目にします。私はまた、標準偏差とZスコアで列にラベルを付けることを望みます。

今私はこのようなループ内の別々のファイルにそれらを計算して書いている:

write.table(st_dev, file="st_dev.csv", sep=",", row.names=FALSE, col.names=FALSE, append=TRUE) 
write.table(z_score, file="z.csv", sep=",", row.names=FALSE, col.names=FALSE, append=TRUE) 

編集:

for(i in 1:130) 
{ 
y=test3[i,3:52] 
z=as.numeric(y) 
average = mean(z) 
st_dev = sd(z) 
dfrm <- data.frame(average=average, st_dev=st_dev) 
write.table(dfrm, file="av_st.csv", sep=",", row.names=FALSE, col.names=TRUE, append=TRUE) 
} 

がどのように私は先頭に一度だけ列ヘッダーを持つことができますcsvファイルの各値に対してそれを印刷する代わりに?ありがとう

+0

あなたは 'APPEND = true'をを使用しているので、2つの答えがあまりにもその文が必要になります。しかし、ループ内の 'data.frame'に2つの値を代入し、ファイルに一度だけ書き込みます。ループするコードを(別の質問で)潜在的に多く投稿した場合は、書き込み手順を大幅にスピードアップできると確信しています。 – Justin

答えて

3

データフレームを作成して書き込みます。

y=test3[1,3:52] 
z=as.numeric(y) 
average = mean(z) 
st_dev = sd(z) } 
dfrm <- data.frame(average = average, st_dev = st_dev) 
write.table(dfrm, file="z_st.csv", sep=",", row.names=FALSE, col.names=TRUE) 

for(i in 2:130) { y=test3[i,3:52] 
z=as.numeric(y) 
average = mean(z) 
st_dev = sd(z) } 
dfrm <- data.frame(average = average, st_dev = st_dev) 
write.table(dfrm, file="z_st.csv", sep=",", row.names=FALSE, col.names=FALSE)} 
+0

このようにすると、次の警告が表示されます。write.table(dfrm、file = "z_st.csv"、sep = "、"、row.names = FALSE、...:列を追加するこの警告を無視する必要がありますか?また、ファイルには2つの列がありますが、標準偏差およびzscore値ごとにループ内の値を計算しているため、ファイルに列名を書き込みます。 – DianaHelen

+0

このコメントまたは上記のジャスティンのいずれかを理解できません。append = TRUEを使用していないため、ヘッダーは1つだけにする必要があります。 2つの別々のグループに分かれていて、これらを別々に書くつもりなら、その質問を明確にする必要があります。次にグループ識別子として3番目の列が必要です。 –

+0

質問を編集しました – DianaHelen

0

これは、あなたが探しているものでなければなりません:

write.table(cbind(st_dev,z_score), 
file="whatever.csv",row.names=F,col.names=c('st_dev','z_score')) 
関連する問題