dplyr 中的分组数据
Grouped data in dplyr
在 Alan Agresti 的线性和广义线性模型基础中,作者指出二进制日期建模的分组数据和未分组数据之间存在差异。格式对推理无关紧要,但对拟合优度很重要。我很难在 dplyr 中以有效的方式从未分组的数据中获取分组数据。
#ungrouped data
x = c(rep(0,4),rep(1,4),rep(2,4))
y = c(c(1,0,0,0,1,1,0,0,1,1,1,1))
data = as_tibble(list(x=x,y=y))
> data
# A tibble: 12 × 2
x y
<dbl> <dbl>
1 0 1
2 0 0
3 0 0
4 0 0
5 1 1
6 1 1
7 1 0
8 1 0
9 2 1
10 2 1
11 2 1
12 2 1
现在要获取分组数据,表单应如下所示
x ntrials nsuccesses
0 4 1
1 4 2
2 4 4
我试过以下方法
data %>%
group_by(x,y) %>%
tally()
x y n
<dbl> <dbl> <int>
1 0 0 3
2 0 1 1
3 1 0 2
4 1 1 2
5 2 1 4
问题是 y
被分为成功和失败。
您可以按 x 列分组,然后根据 y 列进行汇总:
data %>% group_by(x) %>% summarise(ntrials = n(), nsuccesses = sum(y))
# the number of successes is the sum of y if y is binary
# A tibble: 3 x 3
# x ntrials nsuccesses
# <dbl> <int> <dbl>
#1 0 4 1
#2 1 4 2
#3 2 4 4
在 Alan Agresti 的线性和广义线性模型基础中,作者指出二进制日期建模的分组数据和未分组数据之间存在差异。格式对推理无关紧要,但对拟合优度很重要。我很难在 dplyr 中以有效的方式从未分组的数据中获取分组数据。
#ungrouped data
x = c(rep(0,4),rep(1,4),rep(2,4))
y = c(c(1,0,0,0,1,1,0,0,1,1,1,1))
data = as_tibble(list(x=x,y=y))
> data
# A tibble: 12 × 2
x y
<dbl> <dbl>
1 0 1
2 0 0
3 0 0
4 0 0
5 1 1
6 1 1
7 1 0
8 1 0
9 2 1
10 2 1
11 2 1
12 2 1
现在要获取分组数据,表单应如下所示
x ntrials nsuccesses
0 4 1
1 4 2
2 4 4
我试过以下方法
data %>%
group_by(x,y) %>%
tally()
x y n
<dbl> <dbl> <int>
1 0 0 3
2 0 1 1
3 1 0 2
4 1 1 2
5 2 1 4
问题是 y
被分为成功和失败。
您可以按 x 列分组,然后根据 y 列进行汇总:
data %>% group_by(x) %>% summarise(ntrials = n(), nsuccesses = sum(y))
# the number of successes is the sum of y if y is binary
# A tibble: 3 x 3
# x ntrials nsuccesses
# <dbl> <int> <dbl>
#1 0 4 1
#2 1 4 2
#3 2 4 4