我一定缺少阅读tidyverse编程小插图的内容。对于此示例:
library(dplyr)
library(entropy)
set.seed(122)
df <-data.frame(vec = sample(letters[1:20],100,replace = T),val = sample(1:10,100,replace = T))
df %>%
group_by(vec) %>%
filter(
n()>4,
entropy(table(val))>0
)
# A tibble: 62 x 2
# Groups: vec [8]
vec val
<fct> <int>
1 s 10
2 s 8
3 d 4
4 a 2
5 l 4
6 m 4
7 a 5
8 a 9
9 l 4
10 s 6
# ... with 52 more rows
我想将value变量作为字符串传递,但这在这里不起作用:
var_name="val"
df %>%
group_by(vec) %>%
filter(
n()>4,
entropy(table(!! var_name))>0
)
# A tibble: 0 x 2
# Groups: vec [1]
# ... with 2 variables: vec <fct>, val <int>
我想念什么?
!!sym(var_name)
像这样使用:
df %>%
group_by(vec) %>%
filter(
n()>4,
entropy(table(!!sym(var_name)))>0
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句