2016-04-18 5 views
0

Wie kann ich der ersten Spalte eines Datenrahmens, der auf einer Matrix basiert, den Spaltennamen hinzufügen?Wie kann ich der ersten Spalte eines Datenrahmens, der auf einer Matrix basiert, einen Spaltennamen hinzufügen?

web_page <- readLines("http://apiolaza.net/babel/") 
    library(tm) 
    SampCrps<- Corpus(VectorSource(web_page)) 
    corp <- tm_map(SampCrps, PlainTextDocument) 
    dtm <-DocumentTermMatrix(oz) 
    findFreqTerms(dtm,2) # words that apear at least 2 times 
    dtmMatrix <- as.matrix(dtm) 
    wordsFreq <- colSums(dtmMatrix) 
    wordsFreq <- sort(wordsFreq, decreasing=TRUE) 
    head(wordsFreq,10) 
library  one  the book books whose another  can letters first 
    23  19  16  13  13  9  8  8  8  7 

    wordsFreq<-as.data.frame(wordsFreq) 
wordsFreq<-as.data.frame(wordsFreq) 
head(wordsFreq) 
     wordsFreq 
library  23 
one   19 
the   16 
book   13 
books   13 
whose   9 

aber als ich versuchte, die erste Spalte zu nennen ich diese Fehlermeldung bekommen:

colnames(wordsFreq)<-c("word", "count") 
Error in `colnames<-`(`*tmp*`, value = c("word", "count")) : 
    'names' attribute [2] must be the same length as the vector [1] 

Wie kann ich dieses Problem lösen und die erste Spalte mit dem Namen nennen, die ich

+1

Ihre Ausgabe von 'head()' zeigt an, dass der Datenrahmen 'wordsFreq' nur eine Spalte hat. Sie können also keine Namen für zwei Spalten zuweisen, da es nur eine Spalte gibt. –

Antwort

1

will statt von wordsFreq<-as.data.frame(wordsFreq)

Verwendung

wordsFreq <- as.data.frame(wordsFreq) 
wordsFreq <- data.frame(word = rownames(wordsFreq), count = wordsFreq, row.names = NULL) 
+0

Hallo @cccmir, ich habe einen Fehler: "Fehler in data.frame (word = rownames (wordsFreq), Anzahl = wordsFreq, row.names = NULL): Argumente implizieren unterschiedliche Anzahl von Zeilen: 0, 1240" – mql4beginner

+0

@ mql4beginner Ich habe die Antwort aktualisiert bitte versuchen Sie es sollte funktionieren – cccmir

+0

Vielen Dank @cccmir – mql4beginner

Verwandte Themen