如何将前导空白行添加到CSV?

时间:2017-05-05 11:25:48

标签: r csv read.csv write.table

我正在进行一些预处理,在使用read.csv导入csv之后,我从csv中删除了两列,我需要将处理后的数据导出回新的csv。 原始csv在文件的开头有2个空白行,我需要将其添加回新的csv。

我通过跳过前三行(包括标题)来阅读csv,如下所示:

Bla <- read.csv("Bla.csv", skip = 3, header = TRUE)

在处理完处理后,我按如下方式编写了一个csv:

write.csv(Bla, file = "Clean_Bla.csv", row.names = FALSE)

我希望新csv的前三行留空,就像在原始cvs中一样。我尝试使用cat,但这似乎不起作用。我想这是因为cat所做的是在csv的末尾附加空行。

cat("\n", file='Clean_Bla.csv', append=TRUE)

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

这里有一个工作示例,你必须先将NA作为缺失值放入数据帧,然后你必须说R为NA写“”

  #data your dataframe before writing
    data<-data.frame(Type=c("A","B","D","D","E","E"),
                 Ratio=c(5,6,3,3,4,4),
                 Number=c(65,74,43,34,23,12))
a<-rep(NA,dim(data)[2])
a<-rbind(a,a,a)
write.table(a, file = "Clean_Bla.csv", row.names = FALSE,na="",col.names=FALSE,sep=",")
write.table(data, file = "Clean_Bla.csv", row.names = FALSE,na="",append=TRUE,sep=",")

答案 1 :(得分:1)

另一种方法是分别阅读2行,并在完成后将其附加到Clean_Bla。这样,您就不必实际指定前两行是什么。您只需从原始数据集中直接使用它:

Bla_first3 = read.csv("Bla.csv", nrow = 2, header = TRUE)
Bla = read.csv("Bla.csv", skip = 3, header = TRUE)

# After cleaning
CleanBla = rbind(Bla_first3, Bla)

write.csv(CleanBla, file = "Clean_Bla.csv", row.names = FALSE)

请注意,这假设您的原始数据集与最终数据集

具有相同的列