具有固定列数的Write.table
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了具有固定列数的Write.table相关的知识,希望对你有一定的参考价值。
我在R中创建了一个非常大的数据框,我想输出许多子集并将它们保存为csvs。但是,我只想保留列的子集(即bin和volume)。考虑到我正在运行需要使用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
循环制作一些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
以上是关于具有固定列数的Write.table的主要内容,如果未能解决你的问题,请参考以下文章
使用与具有不同列数的另一个QGridLayout相同的列间距
怎么用angularjs 给一个固定列数但不固定行数的table绑定数据