2017-05-05 107 views
1

我正在做一些預處理,其中導入csv與read.csv後,我從csv中刪除兩列,我需要將處理後的數據導出到新的csv中。 原始的csv在文件開始處有兩個空白行,我需要將其添加回新的csv。如何將前導空白行添加到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) 

感謝您的幫助!

回答

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=",") 
+0

對不起,現在是OK –

+0

它完美地工作。這是一個很好的解決方案。感謝費德里科! – Filippoflow

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) 

注意,這裏假設你的原始數據集具有相同的列最終數據集