在R中的csv文件中添加两行文本

时间:2012-06-07 10:55:32

标签: r csv

我希望使用我在循环中创建的R为csv文件添加两行。我从一些名为file1.csv,file2.csv等的文件开始,每个文件都包含两列坐标。然后我使用它们作为索引矩阵来创建具有' 2'的新csv文件。在索引文件的条目中列出,并且' 0'除此以外。我将标题添加到文件中,以便生成的文件如下所示:

"","1","2","3","4","5"
"1",0,0,0,0,0
"2",0,0,0,0,2

这正是我需要的(我的代码如下)。但是,我还需要在csv文件的开头添加两行,这些行读取" min 1"和#34; max 3"分别位于标题之前,因此它看起来像:

"min 1",,,,
"max 3",,,,
"","1","2","3","4","5"
"1",0,0,0,0,0
"2",0,0,0,0,2

我尝试在M矩阵中添加行,重新绑定,合并两个csv,重新读取csv文件并尝试添加行,然后我没有得到任何有用的东西。非常感谢建议(以及改进我现有的代码,我相信它非常不优雅)。

谢谢

 csvdat <- list.files(pattern='file.*.csv')
 for (i in seq_along(csvdat)){
data <- read.csv(csvdat[i])
data[,2] -> x
data[,3] -> y
index=cbind(x,y)   
a <- length(x)+1    
matrix(nrow=a,ncol=a) -> M
M[] <- 0
M[index] <- 2
Cn <- c(1:a)
colnames(M) <- Cn
file <- as.character(paste("matrix", i, ".csv", sep=""))
write.csv(M, file,col.names=TRUE)
}

1 个答案:

答案 0 :(得分:1)

这是“你要解决的问题是什么?”的经典案例。如果你解释你正在对输出文件做什么,以及为什么它被限制在如此奇怪的配置中,有人可能会解释一个更好的方法来实现你最终的期望结果 - 而不仅仅是生成这个特定的csv文件。 / p>

也就是说,一般情况下,您可以使用writewrite.csv将“min 1,min 3”字符串发送到文件,然后write.csv(data,{other arguments},append=TRUE)放置数据矩阵在字符串下方。