我正在尝试写入来自R的csv文件,该文件具有不同数量的行值,
*for example*,
1,2,3,4,5
2,3,6
2,3
4,3,4,5
我尝试了3次尝试,但是失败了。
我创建了一个包含1列的数据框,并将每个值分隔为逗号。但是,当我在编辑器中打开它时,它无法像常规csv那样对待,当我通过read.table
for循环{
row< - paste0(“”,row,“,”,value)
}
dataframe [i,]< - substring(row.temp,2)
2.我创建了一个数据框,其中缺少值NA,表示不存在的值,如
t NA w e NA
NA NA t q NA
然后我写csv为
write.table(dataframe,file = "test.csv", row.names = FALSE , col.names = FALSE, na = "", quote = FALSE, sep = ",")
但是,对于NA值,我有不必要的,
将每一行推送到一个向量并逐行写入csv。
for循环{
row.temp< - c(row.temp,values)
} write.table(temp,file =“test.csv”,row.names = FALSE,col.names = FALSE,append = TRUE,sep =“,”)
但是,问题是每个向量值都写入每个新行。
我想用R格式创建这个CSV文件。我可以采取什么方法来解决这个问题。我相信很多人一定要面对这个问题。谢谢!
答案 0 :(得分:3)
您是否尝试过使用cat
?只需将您想要的数据直接写入输出文件。
fileOut <- file("output.txt")
apply(dataframe, 1, function(x) {
l <- paste0(x[!is.na(x)], collapse=",")
cat(l, file=fileOut, append=TRUE, sep = "\n")
})
请注意,我将append
模式设置为TRUE
,以确保您不会在apply
的每次迭代中覆盖上一行。
此解决方案假定数据框dataframe
正如您在上述某个尝试中所述,所有列中的NA
值都是缺失值。在这种情况下,我的代码段会在写入文件之前删除这些NA
值。