Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从另一个data.frame填充data.frame中缺少的值_R - Fatal编程技术网

从另一个data.frame填充data.frame中缺少的值

从另一个data.frame填充data.frame中缺少的值,r,R,我有一个nxm数据帧DF1,它有行和列名,其中许多值都是NA。还有第二个数据帧DF2(1 x M,因此实际上可能是一个向量),其行名称与DF1相同。我想使用DF2来填充DF1列中缺少的值 任何帮助都将不胜感激 对不起,我真的应该附上一个例子 带NAs的数据帧 > df = data.frame(matrix(rnorm(9), nrow=3)) > df[1,1] <- NA > df[2,2] <- NA > df[3,3] <- NA

我有一个nxm数据帧DF1,它有行和列名,其中许多值都是NA。还有第二个数据帧DF2(1 x M,因此实际上可能是一个向量),其行名称与DF1相同。我想使用DF2来填充DF1列中缺少的值

任何帮助都将不胜感激

对不起,我真的应该附上一个例子

带NAs的数据帧

> 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
预期产出:

          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(123)
df=数据帧(矩阵(rnorm(9),nrow=3))

df[1,1]您还可以执行一个简单的for循环,以解决此问题:

for(i in 1:dim(df)[1]){
    df[i,is.na(df[i,])] <- df2[i,]
}
for(1中的i:dim(df)[1]){

df[i,is.na(df[i,])]如果是M x 1,DF2如何填充DF1?DF1的单元格数是DF1的n倍。您需要给出一个问题示例,包括样本数据和预期输出。请提供样本的可复制代码data@Symbolix完成。感谢您的反馈。希望现在它更有意义!为什么
df[1,3]=NA
for(i in 1:dim(df)[1]){
    df[i,is.na(df[i,])] <- df2[i,]
}