Rで非常に大きなデータフレームを作成しました。いくつかのサブセットを出力して、それらをcsvとして保存したいと思います。ただし、列のサブセット(つまり、ビンとボリューム)のみを保持したいと思います。odフィールドを使用する必要があるループを実行していることを考えると、これを行う最も簡単な方法は何ですか?
#create data frame
od <-c("520_513", "520_513", "520_513", "520_513", "520_513",
"517_620", "517_620", "517_620", "517_620", "517_620")
bin <-c(1,2,3,4,5,1,2,3,4,5)
volume<-c(1,0,4,5,6,4,4,5,6,6)
df <-data.frame(od, bin, volume)
df1 <-split(df,df$od)
#output csvs
df1 <-for(n in names(df1))
write.table(df1[[n]],
row.names=F,
col.names=F,
sep=",",
file=paste( n,".csv"))
これは私が517_620で得た出力です:
od bin volume
--------------------------------
517_620 1 4
517_620 2 4
517_620 3 5
517_620 4 6
517_620 5 6
しかし、私はこれが欲しい:
bin volume
--------------------
1 4
2 4
3 5
4 6
5 6
ありがとう!
あなたが本当にあなたが説明した空白の分離ではなくコンマで区切られたファイルが欲しいと仮定して、あなたのfor
-loopにいくつかのmodを作ります:
for(n in names(df1)) # the assignment would destroy the df1 object
write.table(df1[[n]][ , 2:3], # use only cols 2 and 3
row.names=F,
col.names=F,
sep=",",
file=paste0( n,".csv")) # change to paste0 to avoid spaces
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加