按组将重复值替换为 NA

sam*_*god 2 r duplicates

我有一个像这样的数据框:

subject <- c(1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5)
day <- c(20, 20, 20 , 20, 20, 40 , 40 , 40 , 40 , 50, 50, 50, 40, 40, 40, 40, 20, 20)

ex <- data.frame(subject, day)
Run Code Online (Sandbox Code Playgroud)

在每个主题中,我想将重复的“日”更改为 NA:

   subject day
1        1  20
2        1  NA
3        1  NA
4        1  NA
5        1  NA
6        2  40
7        2  NA
8        2  NA
9        2  NA
10       3  50
11       3  NA
12       3  NA
13       4  40
14       4  NA
15       4  NA
16       4  NA
17       5  20
18       5  NA
Run Code Online (Sandbox Code Playgroud)

Gre*_*gor 6

library(dplyr)\nex %>%\n  group_by(subject) %>%\n  mutate(day = ifelse(duplicated(day), NA, day)) %>%\n  ungroup()\n# # A tibble: 18 \xc3\x97 2\n#    subject   day\n#      <dbl> <dbl>\n#  1       1    20\n#  2       1    NA\n#  3       1    NA\n#  4       1    NA\n#  5       1    NA\n#  6       2    40\n#  7       2    NA\n#  8       2    NA\n#  9       2    NA\n# 10       3    50\n# 11       3    NA\n# 12       3    NA\n# 13       4    40\n# 14       4    NA\n# 15       4    NA\n# 16       4    NA\n# 17       5    20\n# 18       5    NA\n
Run Code Online (Sandbox Code Playgroud)\n