只要遇到此問題。我正在使用一個數據框,其中包含幾千個使用單詞和單詞分割創建的列。我的一個專欄的名字是「in」,另一個名字是「if」。當試圖做數據$ in之類的事情時,會有一條錯誤消息抱怨這一點。見例如:使用「in」,「if」作爲R中的列名稱時出錯
require(tm)
text<-data.frame(colText<- c("namein", "Inmortal"))
corpus <- Corpus(DataframeSource(text))
corpus[[1]]
<<PlainTextDocument (metadata: 7)>>
namein
ctrl <- list(tokenize = strsplit_character_tokenizer,wordLengths=c(1, Inf))
dtm <- DocumentTermMatrix(corpus, control = ctrl)
str(dtm)
dtm$dimnames$Terms
[1] "a" "al" "e" "ein" "i" "in" "inm" "inmo" "l" "m" "me" "mo" "n" "na" "nam" "name" "o" "ort"
[19] "r" "rt" "rtal" "t"
dtmF <- as.data.frame(inspect(dtm))
dtm$inm
[1] 0 1
dtmF$in
Error: unexpected 'in' in "dtmF$in"
strsplit_character_tokenizer <- function(x){
r<-list()
max=4
for (i in 1:max) {
reg<-paste("([[:alnum:]]{",i,"})", sep="")
tmp=unlist(strsplit(gsub(reg, "\\1 ", x), " "))
r<-c(r,tmp)
}
return (unlist(r))
}
其結果是,當我訓練的SVM分類崩潰, 如何才能解決這個問題?我可以重命名其中的一些列名的,但我想一個更通用的解決方案 感謝
我還沒有在提供的答案中看到錯誤的原因。這是因爲'in'是一個保留的R字。解析器將其視爲一個部分'for'循環調用。見'?保留' – 2015-01-15 22:08:59