我正在尝试编写一个函数来动态地 group_by 字符向量的每个组合。
这就是我设置列表的方式:
stuff <- c("type", "country", "color")
stuff_ListStr <- do.call("c", lapply(seq_along(stuff), function(i) combn(stuff, i, FUN = list)))
stuff_ListChar <- sapply(stuff_ListStr, paste, collapse = ", ")
stuff_ListSym <- lapply(stuff_ListChar, as.symbol)
然后我把它扔进一个循环。
b <- list()
for (each in stuff_ListSym) {
a <- answers_wfh %>%
group_by(!!each) %>%
summarize(n=n())
b <- append(b, a)
}
所以本质上我想复制这个
... group_by(type),
... group_by(country),
... group_by(type, country),
...以及其余的组合。然后我想将所有摘要放入一个列表(小标题/列表列表)
它完全失败了。这是我的错误信息:
Error: Column `type, country` is unknown
。
不仅如此,b
还没有给我想要的东西。这是一个长度为 12 的列表,而我在失败之前只期望 2 。一个按“类型”分组,第二个按“国家”分组。
总的来说,我是 R 新手,但我认为 tidy eval 真的很酷,我想尝试一下。这里有什么提示吗?