计数n

时间:2019-06-19 09:45:29

标签: r dplyr

我想按参与者的年龄过滤他们。为此,我使用了(例如):

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'

能帮我吗? 非常感谢。

1 个答案:

答案 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