2017-05-05 2 views
1

Ich mache einige Vorverarbeitung, wo nach dem Importieren eines CSV mit read.csv, ich zwei Spalten aus dem CSV löschen und ich muss die verarbeiteten Daten in einem neuen CSV zurück exportieren. Das ursprüngliche csv hat 2 leere Zeilen am Anfang der Datei, die ich dem neuen csv hinzufügen müsste.Wie werden führende leere Zeilen zu einer CSV hinzugefügt?

las ich die csv, wie folgt, indem die ersten drei Reihen Skipping (inkl die Header.):

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

Nach der Verarbeitungsschritte kümmert, habe ich eine csv schreiben wie folgt:

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

Ich möchte, dass die ersten drei Zeilen der neuen CSV leer gelassen wurden, wie in den ursprünglichen CVS. Ich habe versucht mit cat, aber das scheint nicht zu funktionieren. Ich denke, das liegt daran, dass cat die leere Zeile am Ende des CSV anfügt.

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

Danke für die Hilfe!

Antwort

1

hier ein funktionierendes Beispiel, Sie haben NA setzen Wert in den Datenrahmen für vermisste vor, dann muss man zu R sagen zu schreiben „“ fü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

sorry, jetzt ist OK –

+0

Es funktionierte perfekt. Es ist eine saubere Lösung. Danke Federico! – Filippoflow

1

Eine Alternative wäre, die 2 zu lesen Linien getrennt und befestigen Sie es an Ihrem Clean_Bla, nachdem Sie fertig sind. Auf diese Weise müssen Sie nicht angeben, was die ersten beiden Zeilen sind. Sie nehmen es einfach direkt aus dem Original-Datensatz:

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) 

Beachten Sie, dass diese ursprünglichen Datensatzes übernimmt die gleichen Spalten als letzte Dataset

Verwandte Themen