2017-12-06 1 views
0

Zunächst bin ich ein coding noob und habe gerade angefangen zu programmieren, um meine Masterarbeit an meiner Universität zu schreiben. Ich habe Youtube-Kommentare mit dem Tuber-Paket in R extrahiert, um eine Stimmungsanalyse dieser Kommentare durchzuführen. Alles hat gut funktioniert und ich habe einen Datenrahmen mit allen Kommentaren (11314 Beobachtungen und 13 Variablen) erhalten. Als ich jedoch versuchte, eine .csv-Datei dieses Datenrahmens zu schreiben, um die Kommentare in Excel zu betrachten, stieß ich auf ein bestimmtes Problem. Für die Kommentare, die neue Absätze enthalten, hat die write.table-Funktion eine neue Zeile erstellt. Ich habe die folgende Funktion:Weisen Sie jeden extrahierten Kommentar einer einzelnen Zeile zu. Write.table R data frame

write.table(testneuohneduplikate, file = "Testneuohnedulikate.csv",sep = ";", row.names = FALSE, col.names = TRUE, quote = TRUE) 

Gibt es eine Möglichkeit, dass jeder Kommentar in einer einzigen Zeile geschrieben wird und nicht manchmal zwei oder drei Reihen, weil der Kommentar Absätze enthält?

Ich hoffe, ich konnte mein Problem richtig erklären.

Danke Jungs im Voraus und Grüße aus Deutschland an, wo immer Sie sind aus :)

Antwort

0

Ja, write.table eine neue Zeile zu erzeugen, wenn er ein Newline-Zeichen trifft. Hier ist ein Beispiel von Strippen Zeilenumbrüche aus dem Kommentartext:

> comment<-"I think this video \n is great" 
> cat(comment) 
I think this video 
is great 

> fixedcomment<-gsub("[\r\n]", "", comment) 
> cat(fixedcomment) 
I think this video is great 
> 

Sie verwenden können ‚anwenden‘ es in der Tabelle für jede Spalte zu übernehmen, oder die RAND-Parameter ändern, wenn Sie nur die Zeilen tun wollen oder Säulen.

> ID<-1:4 
> Names<-c('name1','name2','name3','name4') 
> Comments<-c("I think this video \n is great", "No it stinks \n I mean it", "Use the Force", "It's time \n to get to work") 
> table<-cbind(ID, Names, Comments) 

> fixed_table<-apply(X=table,MARGIN=c(1,2),FUN = function(y) gsub("[\r\n]","",y)) 
+0

vielen Dank für diese Information! Könntest du mir auch helfen, das in die oben angegebene Funktion zu implementieren? write.table (testneuohneduplikat, file = "Testneuoednedilikate.csv", sep = ";", row.names = FALSCH, col.names = TRUE, quote = TRUE) – Lucinho91

+0

Dies ist ein häufiges Problem und einige der schnellsten Lösungen hängen von Ihrem Betriebssystem ab (zB Windows vs OsX). In Windows könnten Sie zum Beispiel Ihre df-Datei nicht als CSV, sondern als TSV-Tab-separated-Werte exportieren. Excel und OpenOffice in Windows sind viel besser als TSV als CSV. Warum postest du kein reproduzierbares Beispiel? Wählen Sie einige Beobachtungen aus Ihrem Datenrahmen aus und exportieren Sie sie mit dput() und fügen Sie den resultierenden Code in Ihre Frage ein. –

+0

OK, ich habe die Antwort bearbeitet, um zu zeigen, wie man dies auf einen Datenrahmen anwendet. Wenn Sie weitere Verbesserungen benötigen, lesen Sie die APPLY-Funktion. – JasonRDalton

Verwandte Themen