gpt4 book ai didi

r - 从另一个 data.frame 中填充 data.frame 中的缺失值

转载 作者:行者123 更新时间:2023-12-02 01:26:05 24 4
gpt4 key购买 nike

我有一个包含行名和列名的 N x M 数据框 DF1,其中许多值为 NA。还有第二个数据框 DF2(1 x M,所以实际上可以是一个向量),其行名称与 DF1 相同。我想使用 DF2 来填充 DF1 列中的缺失值。

非常感谢任何帮助。

Udp:抱歉,真的应该附上例子

带有 NA 的数据框

> df = data.frame(matrix(rnorm(9), nrow=3))
> df[1,1] <- NA
> df[2,2] <- NA
> df[3,3] <- NA
X1 X2 X3
1 NA -0.1364313 NA
2 -0.7473972 NA -0.1662138

替换值(相同的行名、列名——无关紧要

df2 = data.frame(c(1,2))
c.1..2.
1 1
2 2

预期输出:

          X1         X2         X3
1 1 -0.1364313 1
2 -0.7473972 2 -0.1662138

最佳答案

我认为这是一种方法。首先,我创建一个新的 data.frame (new_df),只选择匹配的行,然后我对数据执行 sapply 以替换NA 值。

set.seed(123)
df = data.frame(matrix(rnorm(9), nrow=3))
df[1,1] <- NA
df[2,2] <- NA
df[3,3] <- NA
df2 <- data.frame(c(1,2))
#create new data.frame
new_df <- df[which(row.names(df2) == row.names(df)),]
#use sapply()
t(sapply(row.names(df2), FUN = function(x)
ifelse(is.na(new_df[row.names(new_df) == x,]),
df2[row.names(df2)== x,],
new_df[row.names(new_df) == x,])))

[,1] [,2] [,3]
1 1 0.07050839 0.4609162
2 -0.2301775 2 -1.265061

请注意,这会导致列名丢失...这可能意味着有更好的方法来实现。另外,我的数据也不同,因为我们没有使用 set.seed

关于r - 从另一个 data.frame 中填充 data.frame 中的缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37015659/

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