所以我在R Studio中运行以下代码并收到此错误:
UseMethod(“tbl_vars”)中的错误:'tbl_vars'没有适用的方法 应用于“character”类的对象
我不知道如何解决它因为没有tbl_vars功能!有人可以帮忙吗?
for (i in 1:ceiling(nrow(reviews)/batch)) {
row_start <- i*batch-batch+1
row_end <- ifelse(i*batch < nrow(reviews), i*batch, nrow(reviews))
print(paste("Processing row", row_start, "to row", row_end))
reviews[row_start:row_end, ] %>%
unnest_tokens(word, text) -> reviews_subset
reviews_subset$row <- 1:nrow(reviews_subset)
reviews_subset %>%
anti_join(stopwords) %>%
arrange(row) -> reviews_subset
write_feather(reviews_subset, path = paste0("reviews", i, ".txt"))
}
Ps:安装了dplyr。还有其他已安装的软件包:pacman,feather,data.table,devtools,tidyr,tidytext,tokenizers,tibble
我正在使用它来处理Yelp数据集。
非常感谢, Carmem
ps2:数据集示例(已编辑并简化为适合此处):
> dput(as.data.frame(review))
structure(list(user_id = 1:10, review_id = 11:20, business_id = 21:30,
stars = c(2L, 2L, 5L, 4L, 4L, 5L, 4L, 3L, 5L, 4L), text = c("Are you the type of person that requires being seen in an expensive, overly pretentious restaurant so that you can wear it as a status symbol? Or maybe you're a gansta who dresses like CiLo Green and wants to show the hunny's (yes, a group of them out with one man) a night on the town!",
"Today was my first visit to the new luna, and I was disappointed-- both because I really liked the old cafe luna, and because the new luna came well recommended",
"Stayed here a few months ago and still remember the great service I received.",
"I came here for a business lunch from NYC and had a VERY appetizing meal. ",
"Incredible food with great flavor. ",
"OMG, y'all, try the Apple Pie Moonshine. It. Is. Seriously. Good. Smoooooooth. The best rum that I've sampled so far: Zaya.",
"Caitlin is an amazing stylist. She took time to hear what I had to say before jumping in",
"Oh yeah! After some difficulties in securing dinner, my dad and I found ourselves at one of the billion Primanti's locations for a quick feast",
"I've been going to this studio since the beginning of January",
"The best cannoli, hands down!!"
)), .Names = c("user_id", "review_id", "business_id", "stars",
"text"), row.names = c(NA, -10L), class = "data.frame")
答案 0 :(得分:3)
将anti_join(stopwords)
更改为anti_join(stop_words)
。 stopwords
可能不存在或不是您想要的
答案 1 :(得分:0)
UseMethod(“ tbl_vars”)中的错误:没有适用于'tbl_vars'的方法...
消息不是由缺少的 tbl_vars 函数引起的。当我错误地将向量传递给dplyr连接函数而不是另一个数据帧时,我遇到了完全相同的错误。这是一个简单的示例,说明如何使用dplyr 0.7.5在R 3.5中生成此错误:
library(dplyr)
# Create a dataframe of sales by person and bike color
salesNames = c('Sally', 'Jim', 'Chris', 'Chris', 'Jim',
'Sally', 'Jim', 'Sally', 'Chris', 'Sally')
salesDates = c('2018-06-01', '2018-06-05', '2018-06-10', '2018-06-15',
'2018-06-20', '2018-06-25', '2018-06-30', '2018-07-09',
'2018-07-12', '2018-07-14')
salesColor = c('red', 'red', 'red', 'green', 'red',
'blue', 'green', 'green', 'green', 'blue')
df_sales = data.frame(Salesperson = salesNames,
SalesDate = as.Date(salesDates),
BikeColor = salesColor,
stringsAsFactors = F)
# Create another dataframe to join to
modelColor = c('red', 'blue', 'green', 'yellow', 'orange', 'black')
modelPrice = c(279.95, 269.95, 264.95, 233.54, 255.27, 289.95)
modelCommission = modelPrice * 0.20
df_commissions = data.frame(ModelColor = modelColor,
ModelPrice = modelPrice,
Commission = modelCommission,
stringsAsFactors = F)
df_sales_comm = df_sales %>% left_join(df_commissions,
by = c('BikeColor'= 'ModelColor'))
这很好。现在尝试这个:
df_comms = df_commissions$ModelColor # vector instead of dataframe
df_sales_comm2 = df_sales %>% left_join(df_comms,
by = c('BikeColor'= 'ModelColor'))
,您应该看到完全相同的错误报告,因为df_comms不是日期框架。您遇到的问题是停用词是矢量,而不是数据帧(或小标题)。
答案 2 :(得分:0)
有几种方法可以解决此错误。正如Szczepaniak所指出的,根本原因是试图将字符向量传递到需要数据帧或小标题的操作中。
选项1:将字符向量转换为数据帧(或小标题),然后在anti_join中使用。转换示例:
`stopwords <- tibble(joinColumn = stopwords)`
选项2:更改操作以接受字符向量。在这种情况下,我们可以使用filter代替anti_join,如下所示:
`reviews_subset <- reviews_subset %>%
filter(!joinColumn %in% stopwords) %>%
arrange(row) -> reviews_subset`