2016-12-12 3 views
0

I Hashtags von Strings in R zu extrahieren bin versucht, kann aber um die folgenden Fehler nicht erhalten:Fehler beim Hashtags von Strings in R Extrahieren

(Beispiel eingestellt):

Ich habe einen Datenrahmen 'MyData', mit einer Spalte, die den Text von Tweets ('Tweets') enthält, und einer leeren Spalte, in die ich die Hashtags innerhalb jedes Tweets ('Hashtags' genannt) einfügen möchte.

View(MyData) 
tweets       hashtags 
hello #test1 
hello #test2 goodbye #test3 

ich extrahieren Sie die Hashtags wie folgt:

MyData$hashtags <- as.character(str_extract_all(MyData$tweets, "#\\S+)) 

Das gibt mir:

View(MyData) 
tweets       hashtags 
hello #test1     #test1 
hello #test2 goodbye #test3  c("#test2","#test3") 

Allerdings möchte ich das Display einfach sein:

View(MyData) 
tweets       hashtags 
hello #test1     #test1 
hello #test2 goodbye #test3  #test2, #test3 

Nein bezweifle, dass es ein extrem einfacher Nebel ist Ake ich mache, aber egal, welche Extraktionsmethode ich verwende (ich habe mehrere versucht), Tweets mit mehreren Hashtags werden immer von c umgeben ("", "", ...).

Kann jemand eine Möglichkeit empfehlen, die Hashtags im gewünschten Format zu extrahieren oder die Ausgabe nachträglich zu ändern?

Danke für Ihre Hilfe.

Antwort

1

Wie über dieses

#sample data 
MyData<-read.table(text="tweets 
hello #test1 
hello #test2 goodbye #test3", comment="", header=T, sep="\t") 

Jetzt paste() verwenden komma beitreten Ihre Ergebnisse

MyData$hashtags <- sapply(str_extract_all(MyData$tweets, "#\\S+"), paste, collapse=", ") 
MyData 
#      tweets  hashtags 
# 1    hello #test1   #test1 
# 2 hello #test2 goodbye #test3 #test2, #test3 

Dies funktioniert, weil str_extract_all eine Liste von Zeichenvektoren zurückgibt. Statt diese Liste mit as.character zu konvertieren, können wir mithilfe von paste(, collapse=) steuern, wie diese Werte reduziert werden, und einen schönen Zeichenvektor beibehalten.

Verwandte Themen