对象[seq_len(ile)]中的错误:'symbol'类型的对象不是子集合
问题描述:
我正尝试使用render语句将rmd文件转换为pdf。对象[seq_len(ile)]中的错误:'symbol'类型的对象不是子集合
render("MiningReport.Rmd", "pdf_document",output_dir = "C:/ProjectSocial/Reports/Twitter/Maybelline")
我得到了如下错误
Quitting from lines 109-113 (MiningReport.Rmd)
Error in object[seq_len(ile)] :
object of type 'symbol' is not subsettable
这看起来很奇怪,我因为我编织的RMD文件则没有这样的错误,PDF报表成功生成,当我尝试使用render语句来做同样的事情会导致错误。任何人都可以请解释发生了什么?下面是其中误差在
```{r assoc ,echo=F,message=FALSE}
library(tm)
findAssocs(myTdm,df$term[1:10],0.5)
```
爬行当我删除上述块则下一个代码块发生相同的错误代码块。以下是我的Rmd文件。我正在读取存储在指定目录中的文件中的推文。
```{r computedate,echo = FALSE}
date1 <-format(Sys.Date() - 7,"%B %d")
date2 <-format(Sys.Date() - 1,"%B %d, %Y")
```
# This report has been created on twitter data from `r date1` to `r date2`.
# Analysis of Tweets
## Below we can see the most frequent words.
```{r frequent,echo=FALSE,message=FALSE,warning=FALSE,cache=TRUE}
setwd("C:/ProjectSocial/Data/TwitterData/Maybelline")
library(devtools)
library(twitteR)
library(tm)
library(ggplot2)
library(graph)
library(Rgraphviz)
library(wordcloud)
library(topicmodels)
library(data.table)
library(fpc)
library(igraph)
library(xlsx)
library(stringr)
tweets.df<-data.frame(text=character(),favorited=character(),favoriteCount=numeric(),replyToSN=character(),
created=as.POSIXct(character()),truncated=character(),replyToSID=character(),id=character(),replyToUID=character(),statusSource=character(),screenName=character(),retweetCount=numeric(),
isRetweet=character(),retweeted=character(),longitude=character(),latitude=character(),stringsAsFactors =F)
i<-1
while(i<=7){
since<-Sys.Date()-i
file<-read.xlsx2(file=paste("Maybelline",since,".xlsx",sep=""), 1,colClasses = c(rep("character",2),
"numeric","character","POSIXct",rep("character",6),"numeric",rep("character",4)), stringsAsFactors=F)
tweets.df<-rbind(tweets.df,file)
i<-i+1
}
j<-1
HashTagsList<-c()
HashTags<-str_extract_all(tweets.df$text,"#\\S+")
HashTags<-HashTags[!HashTags %in% c("character(0)")]
while (j<=length(HashTags)){
HashTagsList<-c(HashTagsList,HashTags[[j]])
j<-j+1
}
HashTagsList<- gsub("#", "", HashTagsList)
HashTagsList<-unique(HashTagsList)
HashTagsList<-gsub("[^[:alnum:] ]", "", HashTagsList)
k<-1
HandleTagsList<-c()
HandleTags<-str_extract_all(tweets.df$text,"@\\S+")
HandleTags<-HandleTags[!HandleTags %in% c("character(0)")]
while (k<=length(HandleTags)){
HandleTagsList<-c(HandleTagsList,HandleTags[[k]])
k<-k+1
}
HandleTagsList<- gsub("@", "", HandleTagsList)
HandleTagsList<-unique(HandleTagsList)
HandleTagsList<-gsub("[^[:alnum:] ]", "", HandleTagsList)
tweets.df$text<-gsub("#\\S+", "", tweets.df$text)
tweets.df$text<-gsub("@\\S+", "", tweets.df$text)
Tweets.df<-subset(tweets.df,isRetweet=="FALSE")
Tweets.df$text<-gsub("[^[:alpha:] ]", " ", Tweets.df$text)
Tweets.df$text<-tolower(Tweets.df$text)
myCorpus <-Corpus(VectorSource(Tweets.df$text))
myStopwords<-c(stopwords("english"),"maybelline","https","like","bring","make","thought","please","maybe",
"know","just","want","wearing","really","last","better","best","first")
myCorpus<-tm_map(myCorpus,removeWords,myStopwords)
myCorpus<-tm_map(myCorpus,removeWords,HashTagsList)
myCorpus<-tm_map(myCorpus,removeWords,HandleTagsList)
myCorpus <- tm_map(myCorpus, PlainTextDocument)
myTdm<-TermDocumentMatrix(myCorpus,control=list(wordLengths=c(4,13)))
freq.Terms<- findFreqTerms(myTdm,lowfreq=20)
termFrequency <- rowSums(as.matrix(myTdm))
termFrequency <- subset(termFrequency, termFrequency>=20)
df <- data.frame(term=names(termFrequency), freq=termFrequency,stringsAsFactors = F)
df <- df[order(-df$freq),]
rownames(df) <- NULL
print(head(df,50), row.names = FALSE)
df<-head(df,40)
ggplot(df,aes(x=term,y=freq)) + geom_bar(stat="identity") + xlab("Terms") +ylab("Count") +coord_flip()
```
## Below we can find all the words which are associated with the top 10 most frequent words and having correlation > 0.5.
```{r assoc ,echo=F,message=FALSE}
library(tm)
findAssocs(myTdm,df$term[1:10],0.5)
```
任何帮助表示赞赏 感谢
答
的错误来了,因为我使用的回声= F,而不是回声= FALSE。 F或T被认为是符号,因此会产生问题。 这是为什么F(或T)是一个符号(见is.symbol知道一个符号是什么?):
> str(alist(warning = F))
List of 1 $ warning: symbol F > str(alist(warning = FALSE)) List of 1 $ warning: logi FALSE
+1
哇,追查是一个多么困难的错误。感谢您发布这个答案。对于其他人阅读,我看到了在我的rmarkdown代码块的注释中由“eval = F”引起的相同错误,而不是代码本身。小心那个! – eleanorahowe
请尝试提供某种最低限度[重复的例子]的(HTTP://计算器.com/questions/5963269/how-to-make-a-great-r-reproducible-example),我们可以运行重新创建错误。这会帮助你更容易。 – MrFlick
你的工作空间中有谁是'df'? 'df $ term'在这里抛出同样的错误,'df'也是一个R内建函数。 – Fernando
@ Fernando为什么编织文件时不会出错? df只是数据框的名称。渲染语句完美工作了几天,今天突然发生了错误 – Abhinav