想象一下,您有一个类似于以下矩阵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
我希望以下列直观的形式完成这些NAs:
# code decr
# 1 001 x
# 2 001 x
# 3 002 y
# 4 002 y
# 5 003 z
# 6 003 z
如何以最佳方式进行此转换?
答案 0 :(得分:4)
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答案,而且在欺骗中,但它并没有假设缺失值的特定位置。