gpt4 book ai didi

r 基于字符变量进行子集化以获取唯一 ID

转载 作者:行者123 更新时间:2023-12-01 16:22:09 26 4
gpt4 key购买 nike

我正在尝试根据“类别”变量对数据进行子集化。更具体地说,该类别有两个级别:a 和 b。示例数据如下所示:

    id <- c(1,2,2,2,1,1,2,2,1,2)
category <- c("a", "b", "a", "a", "b", "a","a", "b","a","a")

data <- data.frame("id"=id, "category"=category)
> data
id category
1 1 a
2 2 b
3 2 a
4 2 a
5 1 b
6 1 a
7 2 a
8 2 b
9 1 a
10 2 a

我想获取类别变量中a或b的个数超过3的id。我先看表数数,表格可能如下所示:(这部分不一定要打印)

      a   b
1 3 1
2 4 2

然后选择符合我的条件的 id。

      a   b

2 4 2

提前致谢!

最佳答案

一种dplyr可能是:

data %>%
count(id, category) %>%
group_by(id) %>%
filter(n_distinct(category) == 2 & any(n > 3))

id category n
<dbl> <fct> <int>
1 2 a 4
2 2 b 2

如果您想要精确的输出,使用 dplyrtidyr,您可以这样做:

data %>%
count(id, category) %>%
group_by(id) %>%
filter(n_distinct(category) == 2 & any(n > 3)) %>%
spread(category, n)

id a b
<dbl> <int> <int>
1 2 4 2

关于r 基于字符变量进行子集化以获取唯一 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56483805/

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