【发布时间】:2021-02-17 22:20:52
【问题描述】:
我有一些关于多项选择问题的调查数据,这些数据已经输出,每个可能的选择都有一列,填充有 TRUE/FALSE 值,例如
library(dplyr)
dat <- tribble(
~name, ~state, ~onions, ~`sweet potatoes`, ~garlic,
"Tom", "WV", TRUE, FALSE, TRUE,
"Larry", "NC", FALSE, TRUE, FALSE,
"Beth", "NY", TRUE, TRUE, TRUE
)
dat
#> name state onions `sweet potatoes` garlic
#> <chr> <chr> <lgl> <lgl> <lgl>
#> 1 Tom WV TRUE FALSE TRUE
#> 2 Larry NC FALSE TRUE FALSE
#> 3 Beth NY TRUE TRUE TRUE
如何创建一个列表列,其中包含受访者回答“真”的列名?
类似于https://stackoverflow.com/a/9508203/1009730
我尝试了多种主题的变体
dat %>%
rowwise() %>%
mutate(fav_foods = list(names(which(~ is.logical(.x) && .x))))
给出错误:
错误:
mutate()输入fav_foods有问题。 'which' 的 x 参数不符合逻辑 i 输入fav_foods是list(names(which(~is.logical(.x) && .x)))。 i 错误发生在第 1 行。
【问题讨论】:
-
我更喜欢新专栏,所以我猜
mutate可能会比summarise更好。编辑问题以反映这一点。