gpt4 book ai didi

r - 在 R 数据框中填充缺失值而不丢失行名称和列名称?

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

我有 2 个 R 数据框。

df1 <- data.frame(a = c(1, 2, NA), b = c(10, NA, 2), c = c(NA, NA, 1))
df2 <- data.frame(a = c(NA, NA, 3), b = c(NA, 5, NA), c = c(6, NA, NA))

df1中存在的值是NAdf2反之亦然。一些值为 NA在两个数据框中。我想创建一个新的数据框,其值来自 df1df2 ,无论值出现在哪里,都不会丢失列名和行名。

我能想到的一个简单的解决方案是使用 for循环。

df_merged <- df1

for(i in 1:nrow(df_merged)){
for(j in 1:ncol(df_merged)){
if(is.na(df_merged[i,j])){
df_merged[i,j] = df2[i,j]
}
}
}

最后,df_merged 将是这样的

df_merged
a b c
1 1 10 6
2 2 5 NA
3 3 2 1

我知道for R 中的循环非常慢。是否有更好的解决方案?

最佳答案

尝试一下:

df1[is.na(df1)]<-df2[is.na(df1)]
df1
# a b c
#1 1 10 6
#2 2 5 NA
#3 3 2 1

关于r - 在 R 数据框中填充缺失值而不丢失行名称和列名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51476322/

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