我想按参与者的年龄过滤他们。为此,我使用了(例如):
patientage <- c(18, 18, 18, 18, 18, 19, 20, 20, 20, 21, 22, 23, 23, 24, 25, 26, 27, 28, 29, 30, 30, 31, 32, 34)
group_by(patientage) %>% count(patientage) %>% filter(patientage >17 & patientage <31)%>% sum(n)
现在,我想使用sum(n)
来统计18-30之间的所有参与者。但这会导致错误代码:
> Error in as.vector(x, mode) : cannot coerce type 'closure' to
> vector of type 'any'
能帮我吗? 非常感谢。
答案 0 :(得分:0)
首先,dplyr
期望将数据帧作为输入,因此必须转换向量:
patientage <- data.frame(
patientage = c(
18, 18, 18, 18, 18, 19, 20, 20, 20, 21, 22, 23, 23, 24, 25, 26, 27,
28, 29, 30, 30, 31, 32, 34
)
)
现在您可以使用数据了。最后,sum()
期望再次返回一个向量,这就是为什么您需要从数据帧中pull()
进行期望的向量求和:
patientage %>%
group_by(patientage) %>%
count(patientage) %>%
filter(patientage > 17 & patientage < 31) %>%
pull(n) %>%
sum