gpt4 book ai didi

r - 在 R 中,每个 ID 重复列值的平均数量是多少?

转载 作者:行者123 更新时间:2023-12-04 12:27:37 25 4
gpt4 key购买 nike

背景
我有这个 R数据框,d :

d <- data.frame(ID = c("a","a","a","a","a","a","b","b"),
event = c("G12","G12","G12","B4","B4","A24","L5","L5"),
stringsAsFactors=FALSE)
它看起来像这样:
d
如您所见,它有 2 个不同的 ID就在里面,每个都有 events ,其中一些重复/重复任意次数。
问题
我想弄清楚平均重复次数是多少 event是每 ID在这个数据框中。
一眼就能看出 id = a 有 2 重复的事件 - G12,重复两次(总共 3 个条目)和 B4,重复一次(总共 2 个条目)。 id = b 有 1 重复的事件:L5。请注意,每次重复/重复发生的次数与我在这里无关;重要的是至少有一个重复 eventID .
所以我想要的结果是一个简单的平均值列表:
( 2 重复事件 + 1 重复事件)/2 人 = 1.5
我试过的
由于 this 之类的帖子,我已经接近了,但我不完全在那里:
d %>% summarise(mean = mean(duplicated(event)))
这会运行,但它不考虑重复发生在 ID 内的事实。 (或者至少,我是这么看的)。

最佳答案

这是你想要的吗?

d %>%
group_by(event , ID) %>%
dplyr::summarise(n = n()) %>%
filter(n > 1) %>%
group_by(ID) %>%
dplyr::summarise(n = n()) %>%
summarise(result = mean(n))

result
1 1.5
d
  ID event
1 Bill 1
2 Bill 1
3 Bill 2
4 Bill 2
5 Bill 3
6 Bill 3
7 Bill 4
8 Bill 4
9 Sarah 1
10 Sarah 1
11 Sarah 2
12 Sarah 2
13 Sarah 3
14 Sarah 3
15 Sarah 4
16 Sarah 4
17 Sarah 5
18 Sarah 5
19 Jane 1
20 Jane 1

result
1 3.333333
对代码的小检查
d %>%
group_by(event , ID) %>%
dplyr::summarise(n = n()) %>%
filter(n > 1) %>%
group_by(ID) %>%
dplyr::summarise(n = n())

ID n
<chr> <int>
1 Bill 4
2 Jane 1
3 Sarah 5

关于r - 在 R 中,每个 ID 重复列值的平均数量是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69400955/

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