gpt4 book ai didi

r - 如何在R中的频率表之后删除数据框中的行

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

我有 3 个数据框,我必须从中找到少于 2 个国家/地区的大陆并删除这些国家/地区(行)。数据帧的结构类似于下面称为 x 的数据帧:

    row        Country   Continent   Ranking
1 Kenya Africa 17
2 Gabon Africa 23
3 Spain Europe 04
4 Belgium Europe 03
5 China Asia 10
6 Nigeria Africa 14
7 Holland Europe 01
8 Italy Europe 05
9 Japan Asia 06

首先我想知道每个大陆每个国家的频率,所以我做了
    x2<-table(x$Continent)
x2
Africa Europe Asia
3 4 2

然后我想找出少于 2 个国家的大陆
    x3 <- x2[x2 < 10]
x3
Asia
2

我现在的问题是如何删除这些国家。对于上面的示例,它将是亚洲的 2 个国家,我希望我的最终数据集如下所示:
    row       Country   Continent   Ranking
1 Kenya Africa 17
2 Gabon Africa 23
3 Spain Europe 04
4 Belgium Europe 03
5 Nigeria Africa 14
6 Holland Europe 01
7 Italy Europe 05

少于 2 个国家/地区的大陆数量在不同的数据框架中会有所不同,因此我需要一种可以应用于所有人的通用方法。

最佳答案

尝试

 library(dplyr)
x %>%
group_by(Continent) %>%
filter(n()>2)
# row Country Continent Ranking
#1 1 Kenya Africa 17
#2 2 Gabon Africa 23
#3 3 Spain Europe 04
#4 4 Belgium Europe 03
#5 6 Nigeria Africa 14
#6 7 Holland Europe 01
#7 8 Italy Europe 05

或使用 x2
 subset(x, Continent %in% names(x2)[x2>2])
# row Country Continent Ranking
#1 1 Kenya Africa 17
#2 2 Gabon Africa 23
#3 3 Spain Europe 04
#4 4 Belgium Europe 03
#6 6 Nigeria Africa 14
#7 7 Holland Europe 01
#8 8 Italy Europe 05

关于r - 如何在R中的频率表之后删除数据框中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30174782/

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