2016-05-13 5 views
3

Ich bin ein bisschen neu für R und tm so mit dieser Übung zu kämpfen!Wie kann ich eine Termmatrix erstellen, die jedem Dokument zugeordnete numerische Werte summiert?

Ich habe eine Beschreibung Spalte mit unordentlichen unstrukturierten Daten mit Wörtern über den Namen, Stadt und Land eines Kunden. Und eine andere Spalte mit der Menge von verkaufte Artikel.

**Description Sold Items** 
Mrs White London UK 10 
Mr Wolf London UK 20 
Tania Maier Berlin Germany 10 
Thomas Germany 30 
Nick Forest Leeds UK 20 
Silvio Verdi Italy Torino 10 
Tom Cardiff UK 10 
Mary House London 5 

das tm Paket und documenttermmatrix verwenden, ich bin in der Lage jede Zeile in Bezug zu brechen und die Frequenz jedes Wort zu erhalten (das heißt die Zahl der Kunden mit diesem Wort).

  UK London Germany … Mary 
Frequency 4 3 2 … 1 

Allerdings möchte ich auch die Gesamtmenge der verkauften Artikel summieren.

sollte der gewünschte Ausgang sein:

  UK London Germany … Mary 
Frequency 4 3 2 … 1 
Sum of Sold Items 60 35 40 … 5 

Wie kann ich zu diesem Ergebnis zu bekommen?

Antwort

1

Unter der Annahme, können Sie auf die Bühne zu bekommen, wo Sie die Frequency Tabelle haben:

  UK London Germany … Mary 
Frequency 4 3 2 … 1 

und Sie die Wörter extrahieren können Sie eine Anwendung Funktion mit einem grep verwenden können. Hier werde ich einen Vektor erstellen, die Ihr Wörterbuch stellt Sie von Ihrem frequency Tabelle extrahieren:

S_data<-read.csv("data.csv",stringsAsFactors = F) 

Words<-c("UK","London","Germany","Mary") 

Dann ist diese Verwendung in einer Anwendung wie folgt. Dies könnte effizienter durchgeführt werden. Aber Sie werden auf die Idee kommen:

string_rows<-sapply(Words, function(x) grep(x,S_data$Description)) 

string_sum<-unlist(lapply(string_rows, function(x) sum(S_data$Items[x]))) 
> string_sum 
    UK London Germany Mary 
    60  35  40  5 

Gerade binden diese auf Ihren frequency Tisch

+0

Danke Hanjo. Auf welchem ​​Schritt hast du das ausgeführt? Als ich versucht habe, string_sum zu laufen, bekomme ich 0 0 0 0 in der letzten Ausgabe. – DocumentTermMatrix

+0

Entschuldigung, mein Schlechter. Ich musste nur den Spaltennamen in "Items" ändern. Funktioniert jetzt gut! – DocumentTermMatrix

+0

Ich habe das getan. Vielen Dank – DocumentTermMatrix

Verwandte Themen