大约一周前,我写了一些代码,效果很好,但是现在停止工作了。我已经更新了tidyverse软件包,以查看是否可能是问题所在,而并非如此。
以下是一些示例数据:
yearmo sex eco ue fs12ago fs12ahead purchases
200301 Male neutral negative negative neutral neutral
200301 Female negative negative negative neutral neutral
200301 Female negative negative neutral neutral positive
200301 Male neutral neutral neutral neutral neutral
200301 Male negative negative negative positive negative
200301 Male negative negative neutral neutral positive
200301 Male negative negative neutral neutral neutral
200301 Male negative negative positive neutral negative
200301 Female negative negative negative neutral positive
200301 Female negative negative positive negative neutral
200301 Female negative negative negative negative negative
200301 Female negative neutral negative neutral negative
200301 Male negative negative neutral neutral negative
200301 Female positive neutral neutral neutral positive
200301 Male negative negative neutral neutral positive
200301 Male neutral negative negative neutral neutral
200301 Female neutral negative negative neutral neutral
200301 Male neutral negative neutral neutral positive
200301 Female negative negative negative negative positive
200301 Female positive negative neutral neutral positive
正在运行但现在无法运行的代码是:
tmp_eco <- data %>%
group_by(yearmo) %>%
count(yearmo, eco)
我过去得到的输出是对名为“ eco”的变量做出肯定,否定或中性反应的人数,例如:
yearmo eco n
200301 positive 10
200301 negative 13
200301 neutral 9
200301 positive 7
200301 negative 5
200301 neutral 16
我现在得到的错误是:
Error: Can't subset with `[` using an object of class quoted.
Call `rlang::last_error()` to see a backtrace
哪个给我:
<error>
message: Can't subset with `[` using an object of class quoted.
class: `rlang_error`
backtrace:
1. dplyr::group_by(., yearmo)
9. plyr::count(., yearmo, eco)
14. plyr::eval.quoted(vars, df)
18. tibble:::`[.tbl_df`(envir, exprs)
19. tibble:::check_names_df(i, x)
Call `rlang::last_trace()` to see the full backtrace
对为什么会发生这种情况有任何想法吗?
答案 0 :(得分:2)
在显示“数据”的情况下,如果我们使用的是group_by
,则不需要count
library(dplyr)
data %>%
dplyr::count(yearmo, eco)
# A tibble: 3 x 3
# yearmo eco n
# <int> <chr> <int>
#1 200301 negative 13
#2 200301 neutral 5
#3 200301 positive 2
data <- structure(list(yearmo = c(200301L, 200301L, 200301L, 200301L,
200301L, 200301L, 200301L, 200301L, 200301L, 200301L, 200301L,
200301L, 200301L, 200301L, 200301L, 200301L, 200301L, 200301L,
200301L, 200301L), sex = c("Male", "Female", "Female", "Male",
"Male", "Male", "Male", "Male", "Female", "Female", "Female",
"Female", "Male", "Female", "Male", "Male", "Female", "Male",
"Female", "Female"), eco = c("neutral", "negative", "negative",
"neutral", "negative", "negative", "negative", "negative", "negative",
"negative", "negative", "negative", "negative", "positive", "negative",
"neutral", "neutral", "neutral", "negative", "positive"), ue = c("negative",
"negative", "negative", "neutral", "negative", "negative", "negative",
"negative", "negative", "negative", "negative", "neutral", "negative",
"neutral", "negative", "negative", "negative", "negative", "negative",
"negative"), fs12ago = c("negative", "negative", "neutral", "neutral",
"negative", "neutral", "neutral", "positive", "negative", "positive",
"negative", "negative", "neutral", "neutral", "neutral", "negative",
"negative", "neutral", "negative", "neutral"), fs12ahead = c("neutral",
"neutral", "neutral", "neutral", "positive", "neutral", "neutral",
"neutral", "neutral", "negative", "negative", "neutral", "neutral",
"neutral", "neutral", "neutral", "neutral", "neutral", "negative",
"neutral"), purchases = c("neutral", "neutral", "positive", "neutral",
"negative", "positive", "neutral", "negative", "positive", "neutral",
"negative", "negative", "negative", "positive", "positive", "neutral",
"neutral", "positive", "positive", "positive")),
class = "data.frame", row.names = c(NA,
-20L))