基于对称性实现NA [重复]

问题描述 投票:1回答:1

这个问题在这里已有答案:

想象一下,您有一个类似于以下矩阵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

如何以最佳方式进行这种转变?

r dplyr data.table transformation
1个回答
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答案,并且在dupe中,但它没有假设缺失值的特定位置。

© www.soinside.com 2019 - 2024. All rights reserved.