Reputation: 21
Error in UseMethod("TermDocumentMatrix", x) : no applicable method for 'TermDocumentMatrix' applied to an object of class "character"
Code:
install.packages('tm')
install.packages('wordcloud')
install.packages('SnowballC')
install.packages('topicmodels')
#######################
library(tm)
library(wordcloud)
library(SnowballC)
library(topicmodels)
########################
##########################
obama<- paste(readLines("I:/PB 2/Pb 2/tweets_obama.txt"), collapse=" ")
obamacorpus<-Corpus(VectorSource(obama))
obamacorpus <- tm_map(obamacorpus, removePunctuation)
obamacorpus <- tm_map(obamacorpus, removeNumbers)
obamacorpus <- tm_map(obamacorpus, stripWhitespace)
obamacorpus <- tm_map(obamacorpus, content_transformer(tolower))
obamacorpus <- gsub('http\\s+\\s*' , '',obamacorpus)
obamacorpus <- gsub('#\\s+' , '',obamacorpus)
obamacorpus <- gsub('@\\s+' , '',obamacorpus)
obamatdm <- TermDocumentMatrix(obamacorpus)
After running last line I am getting the above error. Whenever I don't run the gsub code the error doesn't occur. Can anyone please help me to solve this error?
Upvotes: 2
Views: 1273
Reputation: 676
Applying gsub
on a corpus will return a chr
.
If you want to keep a corpus for your TermDocumentMatrix, use a content_transformer
.
obamacorpus <- tm_map(obamacorpus, content_transformer(function(x) gsub('http\\s+\\s*','',x))
Upvotes: 1