gpt4 book ai didi

r - 使用 dplyr 获取术语列表、分组依据和汇总值

转载 作者:行者123 更新时间:2023-12-05 09:30:20 24 4
gpt4 key购买 nike

我有一个看起来像这样的表:

  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

我想要做的是为列表中的每个项目搜索每一行并计算平均值(值列)。像这样:

  term mean
1 dog 8.0
2 fish 4.5
3 eel 26.5

在每个有 'dog' 的实例中,它都会计算 valuemean

这样的东西是行不通的:

df %>% 
group_by(., grepl(list, term)) %>%
summarise(mean = mean(value))

我不想做的是将每个术语分开到它自己的行中,因为术语的某些行有 100 多个选项。所以我能想到的唯一有效方法是通过 grep 搜索进行分组。虽然也许我错了......

最佳答案

也许是这样的?

mylist <- c("dog", "fish", "eel")
pattern <- paste0(mylist, collapse = "|")


df %>%
separate_rows(term) %>%
group_by(term = str_extract(term, pattern)) %>%
summarise(mean = mean(value, na.rm = TRUE)) %>%
na.omit()

library(dplyr)

mylist <- c("dog", "fish", "eel")

df %>%
separate_rows(term) %>%
group_by(term) %>%
summarise(mean = mean(value, na.rm = TRUE)) %>%
filter(term %in% mylist)
 term   mean
<chr> <dbl>
1 dog 8
2 eel 26.5
3 fish 4.5

关于r - 使用 dplyr 获取术语列表、分组依据和汇总值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69697448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com