如何将一行 ["A, B, C", "7"] 转换为三行 ["A", "7"], ["B", "7"], ["C", " 7"]

问题描述 投票:0回答:1

想象一下下表

埃莱姆 频率
A 14
A、B 7
A、C 8
A、B、C 1
B、C 3
B 11
C 6

如何将其转换到表格中,在其中隔离每个元素并对频率求和。

在这种情况下会是

期限 频率
A 30
B 22
C 18

我想写一个巨大的 case_when (我有超过三个元素)来搜索整个表并对它们存在的行的频率求和,但这太多了

我想像这样打破界限:

埃莱姆 频率
A 14
A 7
B 7
A 8
C 8
A 1
B 1
C 1
B 3
C 3
B 11
C 6

然后将其分组为频率总和,但我不知道如何

r string split tidyverse
1个回答
0
投票

您可以尝试

separate_longer_delim
,然后
summarise

df %>%
    separate_longer_delim(Elem, ", ") %>%
    summarise(Freq = sum(Freq), .by = Elem)
© www.soinside.com 2019 - 2024. All rights reserved.