Pro*_*oob 4 r missing-data dataframe na
我有两个数据框。df1在我感兴趣的列中有一些 NA,并且df2有相同的列,但具有我需要的值。我想根据行名填充 df1 中的这些值(df2 中的行名在 df1 中找到)。
例如,df1 会是这样的:
Age Gender
Patient_1 NA Male # Has NA
Patient_3 30 Male
Patient_66 45 Female
Patient_10 NA Female # Has NA
Patient_11 67 Female
Patient_23 NA Male # Has NA
Run Code Online (Sandbox Code Playgroud)
df2 包含相同的信息,但仅限于df1 中年龄列中具有NA的样本:
Age Gender
Patient_1 59 Male
Patient_10 80 Female
Patient_23 21 Male
Run Code Online (Sandbox Code Playgroud)
现在,如何为每个样本填充从 df2 到 df1 的年龄值?
我试过这个:
for(i in 1:length(df1$Age)){
if(rownames(df1)[i] == rownames(df2)[i]){
df1$Age[[i]] = df2$Age[[i]]
}
}
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为由于某种原因它只填充了值的子集,某些值在 df1 中仍然不适用。
小智 5
由于df2包含 中所有 NA 行的数据df1,因此您可以简单地df1使用 的 行名称对 中的所有 NA 行进行索引df2,然后Age用该df2$Age列覆盖它们的值。
df1[rownames(df2), "Age"] <- df2$Age
Run Code Online (Sandbox Code Playgroud)