【发布时间】:2021-02-03 15:39:12
【问题描述】:
我有以下数据:
require(dplyr)
x1=rbinom(1000,1,prob = 0.6)
x2=rbinom(1000,2,prob = c(0.3,0.4,0.3))
data=data.frame(x1,x2)
然后我需要对 x2=2 的数据进行交叉制表。
我使用dplyr函数得到想要的结果如下:
data %>% filter(x2==2) %>% count(x1,x2)
x1 x2 n
1 0 2 38
2 1 2 71
这是我对数据执行的单一操作之一。我也需要多次这样做。所以,我尝试创建一个函数来获得相同的结果,如下所示:
fun1=function(data,text1,text2)
{
return(data %>% filter({{text2}}==2) %>% count({{text1}},{{text2}}))
}
fun1(data,"x1","x2")
但我没有得到想要的结果。有人能帮我弄清楚我做错了什么吗?
谢谢!!
【问题讨论】:
-
想要的结果是什么?
-
@Manu 和我没有这个功能的时候一样
-
{{}}的要点是使用不带引号的列名。fun1(data, x1, x2)应该可以工作。 -
@GregorThomas 是的。我怎么错过了:(