我试图在csv数据文件上执行文本挖掘。
我提到的来源是在Twitter数据上执行的。但我想对存储在csv中的文本数据做类似的事情。
我正在尝试以下代码:
data <- read.csv("Joined_Tab.csv")
dtweets <- data[1:30,]
for(i in 1:20)
{
cat(paste("[ [", i, "] ]", sep=""))
writeLines(strwrap(dtweets[[i]]$getText(), width=25))
}
此处data
和dtweets
都是数据框。但是,当我尝试使用getText()
时,我收到以下错误:
Error in dtweets[[i]]$getText : $ operator is invalid for atomic vectors
但是数据帧不是原子矢量。 (我也尝试将数据帧转换为列表,仍然是相同的错误,尽管列表也不是原子向量)
以下是str()
'data.frame': 30 obs. of 2 variables:
$ S.No : int 1 2 3 4 5 6 7 8 9 10 ...
$ Tweet: chr "Good cooperation" "engaged team u always get valuable support" "Still klm with domain specific dcm helps to attract clients" "Support with gdp also on short note works nice"
我哪里错了?
是否有更好的方法在csv文件中执行文本挖掘?
我是R的初学者所以请相应地建议我。感谢。
答案 0 :(得分:0)
当您在data.frame(也是列表)上使用[[
运算符时,您会得到相应的变量,因此dtweets[[1]]
会给出数字(1 2 3 ...)和{ {1}}为您提供推文(“良好合作”,......)。对于大于2的dtweets[[2]]
,您应该收到错误(i
),因为没有更多变量。
此外,使用Error in .subset2(x, i, exact = exact) : subscript out of bounds
后,结果是一个向量!不再是data.frame了!此外,您在tweets[[2]]
之后放置的内容应该是一个函数。在R中,函数需要对括号进行求值,即使没有参数也是如此。
因此,即使$
会为您提供可以使用dtweets[[i]]
建立索引的内容,并且该子项名为$
,您也需要引号:getText()
索引特殊字符。我猜它getText实际上是一个函数,所以你需要像dtweets[[i]]$'getText()'
这样的东西。除非您显示getText(dtweets[i,2])
函数的代码,否则这是猜测。