这个问题在这里已有答案:
想象一下,您有一个类似于以下矩阵M的大型数据集:
M <- data.frame(code = c("001", "001", "002", "002", "003", "003"),
decr = c("x", NA, "y", "y", NA, "z"))
# M
# code decr
# 1 001 x
# 2 001 <NA>
# 3 002 y
# 4 002 y
# 5 003 <NA>
# 6 003 z
我想以下列直观的形式完成NA:
# code decr
# 1 001 x
# 2 001 x
# 3 002 y
# 4 002 y
# 5 003 z
# 6 003 z
如何以最佳方式进行这种转变?
library(tidyverse)
M <- data.frame(code = c("001", "001", "002", "002", "003", "003"),
decr = c("x", NA, "y", "y", NA, "z"))
M %>% group_by(code) %>% mutate (decr=unique(na.omit(decr)))
这类似于@Sotos答案,并且在dupe中,但它没有假设缺失值的特定位置。