我有数据框:
id value
19 56
19 56
19 56
19 98
19 98
id列有许多不同的含义,而不仅仅是19.我需要这样做:
id value
19 56
19 NA
19 NA
19 98
19 NA
每个id都是如此。
答案 0 :(得分:3)
我们可以使用duplicated
中的base R
来创建逻辑索引来分配'值'到NA
df1$value[duplicated(df1)] <- NA
df1
# id value
#1 19 56
#2 19 NA
#3 19 NA
#4 19 98
#5 19 NA
答案 1 :(得分:2)
您可以使用replace()
:
df %>% group_by(id) %>%
mutate(test = replace(value, duplicated(value), NA))
# id value test
# <int> <int> <int>
#1 19 56 56
#2 19 56 NA
#3 19 56 NA
#4 19 98 98
#5 19 98 NA