在具有 NA 的列中过滤具有最大值的重复行
filtering duplicated rows with maximum values in a column with NAs
我有一个看起来像这样的数据框:
studentID
Enrollment_date (class=Date)
56783536
2019-02-01
56783536
2019-02-12
56783406
NA
56783406
NA
56783522
2019-03-02
56783522
NA
56783599
NA
56783599
NA
我正在尝试筛选行,以便 1) 保留具有最大日期的行,2) 当两个注册日期均为 NA 时保留两个重复的行,以及 3) 当一个日期为 NA 而另一个日期为 NA 时',保留没有 NA 的那一行。所以它应该输出这个:
studentID
Enrollment_date (class=Date)
56783536
2019-02-12
56783406
NA
56783406
NA
56783522
2019-03-02
56783599
NA
56783599
NA
我试过这个:
dup2_ENROLL_2020 <- dup_ENROLL_2020 %>%
group_by(studentID) %>%
filter(Enrollment_date==max(Enrollment_date))
还有这个:
dup2_ENROLL_2020 <- dup_ENROLL_2020 %>%
group_by(studentID) %>%
slice(which.max(Enrollment_date))
其中包含 !is.na() 和 na.omit() 的一系列变体。 None 他们成功了,有人帮助我(抱歉新手问题)
试试这个:
dat %>%
group_by(studentID) %>%
filter(if (all(is.na(Enrollment_date))) TRUE else Enrollment_date == max(Enrollment_date, na.rm = TRUE)) %>%
ungroup()
# # A tibble: 6 x 2
# studentID Enrollment_date
# <int> <date>
# 1 56783536 2019-02-12
# 2 56783406 NA
# 3 56783406 NA
# 4 56783522 2019-03-02
# 5 56783599 NA
# 6 56783599 NA
我有一个看起来像这样的数据框:
studentID | Enrollment_date (class=Date) |
---|---|
56783536 | 2019-02-01 |
56783536 | 2019-02-12 |
56783406 | NA |
56783406 | NA |
56783522 | 2019-03-02 |
56783522 | NA |
56783599 | NA |
56783599 | NA |
我正在尝试筛选行,以便 1) 保留具有最大日期的行,2) 当两个注册日期均为 NA 时保留两个重复的行,以及 3) 当一个日期为 NA 而另一个日期为 NA 时',保留没有 NA 的那一行。所以它应该输出这个:
studentID | Enrollment_date (class=Date) |
---|---|
56783536 | 2019-02-12 |
56783406 | NA |
56783406 | NA |
56783522 | 2019-03-02 |
56783599 | NA |
56783599 | NA |
我试过这个:
dup2_ENROLL_2020 <- dup_ENROLL_2020 %>%
group_by(studentID) %>%
filter(Enrollment_date==max(Enrollment_date))
还有这个:
dup2_ENROLL_2020 <- dup_ENROLL_2020 %>%
group_by(studentID) %>%
slice(which.max(Enrollment_date))
其中包含 !is.na() 和 na.omit() 的一系列变体。 None 他们成功了,有人帮助我(抱歉新手问题)
试试这个:
dat %>%
group_by(studentID) %>%
filter(if (all(is.na(Enrollment_date))) TRUE else Enrollment_date == max(Enrollment_date, na.rm = TRUE)) %>%
ungroup()
# # A tibble: 6 x 2
# studentID Enrollment_date
# <int> <date>
# 1 56783536 2019-02-12
# 2 56783406 NA
# 3 56783406 NA
# 4 56783522 2019-03-02
# 5 56783599 NA
# 6 56783599 NA