【发布时间】:2021-10-24 13:57:53
【问题描述】:
我有一张如下所示的表格:
ID term value
1 A cat,dog,snake 10
2 B cat,eel 50
3 C fish,eel 3
4 D fish,dog 6
data.frame(ID = c("A", "B", "C", "D"),
term = c("cat,dog,snake", "cat,eel", "fish,eel", "fish,dog"),
value = c(10, 50, 3, 6))
我有一份感兴趣的清单:
dog
fish
eel
我想要做的是 grep 列表中每个项目的每一行并计算平均值(值列)。像这样:
term mean
1 dog 8.0
2 fish 4.5
3 eel 26.5
每个有'dog' 的实例都会计算mean 的value。
这样的事情是行不通的:
df %>%
group_by(., grepl(list, term)) %>%
summarise(mean = mean(value))
我不想做的是将每个术语分成自己的行,因为某些术语行有 100 个选项。所以我能想到的唯一有效的方法是通过 grep 搜索进行分组。虽然也许我错了……
【问题讨论】: