2012-12-28 38 views
-3

我有一个具有以下格式的CSV文件:在删除csv文件中的列和存储数据时出现问题?

m<-read.csv("table.csv") 
smallerdat <- m[ c(1,2, grep("^X1$|^X2$|X1\\.|X2\\." , names(m))) ] 

现在我要救:

      1   3   1   4 
1415670_at 1 8.512147859 8.196725061 8.174426394 8.62388149 
1415671_at 2 9.119200527 9.190318548 9.149239039 9.211401637 
1415672_at 3 10.03383593 9.575728316 10.06998673 9.735217522 
1415673_at 4 5.925999419 5.692092375 5.689299161 7.807354922 

我已经通过删除不为1或2列所做的这个数据的一些操作这又导致一个CSV文件,所以我这样做:

write.csv(smallerdat,"tablemodified.csv",ncolumns=length(smallerdat),sep=",") 

但我得到了一个错误,指出:

Error in cat(list(...), file, sep, fill, labels, append) : 
    argument 1 (type 'list') cannot be handled by 'cat' 

我的问题是我如何可以将修改后的表格存储到csv文件中。 有什么帮助吗?

+0

看起来你的'grep'中有一个错误。我认为在第一个括号之前需要一个逗号,以确保R只选择那些列。 – richiemorrisroe

+0

@richiemorrisroe:请查看“[”功能。您的建议将返回与原始代码相同的值。如果您正在选择列,则不需要逗号。 –

+0

@Manolo,什么是'ncolumns = length(smallerdat)'应该达到什么目的,你在'write.table'或'write.csv'的文档中看到了这样一个参数? – A5C1D2H2I1M1N2O1R2T1

回答

3

write.csv函数需要具有作为命名参数给出的文件名(所有 write.*表兄弟)。 试试这个(编辑):

write.csv(smallerdat, file="tablemodified.csv") 

而且我原来的猜测适用于保存()函数,而不是write.table变种。

+0

然后删除ncolumns参数。 –

+0

是真的,文件名必须是一个命名参数?过去我多次成功地使用了'write.csv',而没有指定'file =“somefilename”'。 – A5C1D2H2I1M1N2O1R2T1

+0

管理单元!刚刚看到你的编辑;) – A5C1D2H2I1M1N2O1R2T1

2

我正要告诉您读?read.csv并注意指向write.csv的“另请参见”部分...但它不。

所以,使用write.csv。 :)

+0

我试过了,什么也没有,现在有关于sep的另一个错误。我已经拿出来了,仍然是同样的问题 – Layla

+0

@Manolo:'write.csv'与'write'没有相同的参数。您需要阅读'?write.csv'来使您的代码适应您的具体情况。 –