Sainath Jamsandekar
Sainath Jamsandekar

Reputation: 21

Error in UseMethod("TermDocumentMatrix", x) : no applicable method for 'TermDocumentMatrix' applied to an object of class "character"

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

Answers (1)

AshOfFire
AshOfFire

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

Related Questions