首页 > 解决方案 > 在 R 中过滤数据集

问题描述

在这里,我使用 DemocracyIncome 作为我的数据集。可以从R包pder中获取,代码如下:

library(pder)
data("DemocracyIncome", package = "pder")
df <- na.omit(DemocracyIncome)

部分数据集如下:

country                  year               democracy               income              sample
Angola                1965-1969             0.1200000              7.963571                0
Angola                1975-1979             0.1666667              7.642973                0
Angola                1980-1984             0.0000000              7.563512                1
Angola                1985-1989             0.0000000              7.528483                1
Angola                1990-1994             0.0000000              7.573770                1
Angola                1995-1999             0.1666667              7.132994                1
Albania               1995-1999             0.6666667              7.947575                1
Albania               2000-2004             0.5000000              8.115600                1
Argentina             1950-1954             0.4900000              8.768732                0
Argentina             1955-1959             0.3000000              8.833524                0
Argentina             1960-1964             0.6300000              8.905374                1
...

现在我想使用每个国家的第一次观察来创建一个新数据集,这应该是

country                  year               democracy               income              sample
Angola                1965-1969             0.1200000              7.963571                0
Albania               1995-1999             0.6666667              7.947575                1
Argentina             1950-1954             0.4900000              8.768732                0
...

那么如何过滤 df 并获取这个新数据集呢?

标签: rdplyrfiltering

解决方案


我们可以用duplicatedbase R

df_filter <- df[!duplicated(df$country),]

或与distinct

library(dplyr)
distinct(df, country, .keep_all = TRUE)

推荐阅读