在数据框中拆分组并重新聚合
Split groups in a data frame and re-aggregate
我有这个数据框,
df <- data.frame(
group = c(
'Oxidation (M)',
'Unmodified',
'Acetyl (Protein N−term)',
'Acetyl (Protein N−term);Oxidation (M)',
'Unmodified;Acetyl (Protein N−term)'
),
freq = c(10,5,6,3,1)
)
group
freq
Oxidation (M)
10
Unmodified
5
Acetyl (Protein N−term)
6
Acetyl (Protein N−term);Oxidation (M)
3
Unmodified;Acetyl (Protein N−term)
1
最后两行由已经存在且始终 由;
分隔的组组成
我想进一步拆分这些组,并重新聚合他们的 freq
结果:
df_expected <- data.frame(
group = c(
'Oxidation (M)',
'Unmodified',
'Acetyl (Protein N−term)'
),
freq = c(13, 6, 10)
)
group
freq
Oxidation (M)
13
Unmodified
6
Acetyl (Protein N−term)
10
我一直在尝试使用聚合,但到目前为止没有成功。
这个有用吗:
library(tidyr)
library(dplyr)
df %>% separate_rows(group, sep = ';') %>% group_by(group) %>% summarise(freq = sum(freq))
# A tibble: 3 x 2
group freq
<chr> <dbl>
1 Acetyl (Protein N-term) 10
2 Oxidation (M) 13
3 Unmodified 6
我有这个数据框,
df <- data.frame(
group = c(
'Oxidation (M)',
'Unmodified',
'Acetyl (Protein N−term)',
'Acetyl (Protein N−term);Oxidation (M)',
'Unmodified;Acetyl (Protein N−term)'
),
freq = c(10,5,6,3,1)
)
group | freq |
---|---|
Oxidation (M) | 10 |
Unmodified | 5 |
Acetyl (Protein N−term) | 6 |
Acetyl (Protein N−term);Oxidation (M) | 3 |
Unmodified;Acetyl (Protein N−term) | 1 |
最后两行由已经存在且始终 由;
我想进一步拆分这些组,并重新聚合他们的 freq
结果:
df_expected <- data.frame(
group = c(
'Oxidation (M)',
'Unmodified',
'Acetyl (Protein N−term)'
),
freq = c(13, 6, 10)
)
group | freq |
---|---|
Oxidation (M) | 13 |
Unmodified | 6 |
Acetyl (Protein N−term) | 10 |
我一直在尝试使用聚合,但到目前为止没有成功。
这个有用吗:
library(tidyr)
library(dplyr)
df %>% separate_rows(group, sep = ';') %>% group_by(group) %>% summarise(freq = sum(freq))
# A tibble: 3 x 2
group freq
<chr> <dbl>
1 Acetyl (Protein N-term) 10
2 Oxidation (M) 13
3 Unmodified 6