2016-07-06 2 views
0

"std_summary"というデータフレームを作成していますが、これはいくつかの計算を行い、データフレームを作成します。私は分析したいデータセットに対してこれをループしているので、スクリプトはデータを分析して新しいcsvファイルを作成して作成します。各データセットは常に同じ列を持ちますが、行は変わります。私がしたいことは、今のように、それ自体に上書きするのではなく、新しいCSVファイルを作成するのではなく、これを1つのcsvファイルに書き込むことです。どうすればいい?私がしたいことは、計算を実行してデータフレームを作成することです。次に、データフレームをcsvファイルに書き込むときに、最後の行からスキップして後に書き込む。 ここに私のコードがあります。あなたが他に何か必要があれば私に知らせてください!あなたのループ内CSVファイルに書き込みますが、毎回ループ内で別の行を使用しますR

std_summary = ddply(stds[!stds$outlier,],.(well_96,concentration),summarize, 
mean_int = mean(int,na.rm=T), 
std_int = sd(int,na.rm=T), 
prec_cv = (std_int*100/mean_int)) 
std_summary$r_squared = stds.cod 
std_summary$slope = stds.lm$coefficients[2] 
std_summary$intercept = stds.lm$coefficients[1] 
std_summary$plate_barcode = plate_barcode 
#Export standards data 
cat(paste0(Sys.time()," - Saving standards curve data to ",data_root,"\\standards.csv","\n")) 
write.csv(std_summary,file = paste0(data_root,"\\standards_N.csv"),row.names=F) 
+0

ループはどこですか?おそらく、 'lapply'でこれを行うべきです。各ファイルの一意の名前を一緒に'貼り付け 'てください。 – alistaire

+0

*次に、データフレームをcsvファイルに書き込むとき、最後の行から行をスキップし、*の後に書きます。最後のものは?どのようにデータフレームをスライスする必要があるかを示してください。グループ/カテゴリーのような列インジケータがありますか?行の数? index/row.namesによって? – Parfait

+0

ありがとうございました! – user2128119

答えて

0

、あなたはそれぞれの書き込みでを追加するのではなく、ファイルを上書きすることで、ファイルへのデータフレームの行を書きたいならば、あなたはwrite.tableを使用することができます。

例:

filename <- paste0(data_root,"\\standards_N.csv") 
write.table(std_summary[3:4,], file=filename, col.names=F, append=T) 
write.table(std_summary[26:30,], file=filename, col.names=F, append=T) 

注:は、あなたがそうでなければ、あなたがファイルに追加するたびに、あなたは、データセットの途中で別のヘッダー行を追加します、col.names=Fを設定する必要があります。

関連する問題