我拥有重复测量的数据,并使用dplyr
来汇总数据。
数据如下:
r <- rep(seq(1,10,1),10)
x1 <- rbinom(100, 1, 0.5)
x2 <- rbinom(100, 2, 0.5)
y <- rnorm(100, 10, 5)
df <- data.frame(r,x1,x2,y)
现在,当我要使用dplyr
来汇总按x1和x2分组的y时,会出现错误消息:
library(dplyr)
df %>%
select(x1, x2, y, r) %>%
group_by(x1, x2) %>%
summarise(
prop = round(length(df[y < .5])/length(df)*100,2))
Error in summarise_impl(.data, dots) :
Evaluation error: undefined columns selected.
如果我使用filter
df %>%
select(x1, x2, y, r) %>%
filter(r == 1) %>%
group_by(x1, x2) %>%
summarise(
prop = round(length(df[y < .5])/length(df)*100,2))
有人可以向我解释一下和/或提供解决方案吗?
答案 0 :(得分:2)
这是您要尝试的吗?这将得到y小于0.5的行的比例。 @akrun dplyr
建议的 EDIT 并没有真正使用“规范”子设置(df [y <.5,]),因为所有内容都通过管道传递。
df %>%
select(x1, x2, y, r) %>%
group_by(x1, x2) %>%
summarise(
prop = round(sum(y<.5)/nrow(.)*100,2))