gpt4 book ai didi

将多个 NA 值替换为来自不同列组的正确值

转载 作者:行者123 更新时间:2023-12-02 18:06:29 25 4
gpt4 key购买 nike

我有一个数据框,其中某些行缺少数据。正确的数据可以在另一组列中找到。我想用正确的数据替换 NA。

我的数据如下所示:

df <- data.frame(M_1=c(1,NA,3,NA,6),
M_2=c(5,NA,3,NA,1),
M_3=c(6,NA,2,NA,4),
M_C_1=c(NA,2,NA,6,NA),
M_C_2=c(NA,1,NA,4,NA),
M_C_3=c(NA,7,NA,3,NA))
df
# M_1 M_2 M_3 M_C_1 M_C_2 M_C_3
#1 1 5 6 NA NA NA
#2 NA NA NA 2 1 7
#3 3 3 2 NA NA NA
#4 NA NA NA 6 4 3
#5 6 1 4 NA NA NA

对于所有记录,我要么拥有变量 M_1M_2M_3 的完整记录集或者我有一套完整的变量 M_C_1M_C_2M_C_3

对于第一组变量 (M_1:M_3) 中具有 NA 的每一行,我想替换为第二组值 (M_C_1:M_C_2) 中的值。我不需要保留第二组值。所以我想要的数据框看起来像:

df
# M_1 M_2 M_3
#1 1 5 6
#2 2 1 7
#3 3 3 2
#4 6 4 3
#5 6 1 4

我的真实数据集包含此表示法中的许多列,因此我需要一个通用的解决方案(即,我不想单独引用每一列)。

如果可能的话,我想使用 dplyr 来完成此操作。

最佳答案

您可以使用map2 + coalesce:

library(dplyr)
library(purrr)

map2_dfc(select(df, 1:3), select(df, 4:6), coalesce)

# # A tibble: 5 × 3
# M_1 M_2 M_3
# <dbl> <dbl> <dbl>
# 1 1 5 6
# 2 2 1 7
# 3 3 3 2
# 4 6 4 3
# 5 6 1 4

关于将多个 NA 值替换为来自不同列组的正确值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73152144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com