对于每个id na值

时间:2017-07-03 11:40:07

标签: r dplyr

我有数据框:

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都是如此。

2 个答案:

答案 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