gpt4 book ai didi

r - 根据组 ID 匹配值

转载 作者:行者123 更新时间:2023-12-04 16:59:34 24 4
gpt4 key购买 nike

假设我有以下数据框(实际一个代表非常大的数据集)

df<- structure(list(x = c(1, 1, 1, 2, 2, 3, 3, 3), y = structure(c(1L, 
6L, NA, 2L, 4L, 3L, 7L, 5L), .Label = c("all", "fall", "hello",
"hi", "me", "non", "you"), class = "factor"), z = structure(c(5L,
NA, 4L, 2L, 1L, 6L, 3L, 4L), .Label = c("fall", "hi", "me", "mom",
"non", "you"), class = "factor")), .Names = c("x", "y", "z"), row.names = c(NA,
-8L), class = "data.frame")

看起来像
>df
x y z
1 1 all non
2 1 non <NA>
3 1 <NA> mom
4 2 fall hi
5 2 hi fall
6 3 hello you
7 3 you me
8 3 me mom

我想要做的是计算每组 x 中匹配值的数量(1、2 或 3)。例如组号 1有一个匹配的值是 "non" (NA 应该被忽略)。所需的输出如下所示:
  x    n
1 1 1
2 2 2
3 3 2

试图以一种方式思考而不是 for-loop因为我有一个很大的数据集但找不到我的方式。

最佳答案

使用 dplyr :

library(dplyr)

df %>% group_by(x) %>%
summarise(n = sum(y %in% na.omit(z)))

关于r - 根据组 ID 匹配值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31196917/

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