r - 将值NA替换为R中另一列的值

标签 r replace na

我想基于列年的年份,用列B的值替换列A的dfABy中的NA值。例如,我的df是:

                 >dfABy 
                 A    B   Year
                 56   75  1921
                 NA   45  1921
                 NA   77  1922
                 67   41  1923
                 NA   65  1923


我将参加的结果是:

                 > dfABy
                 A    B   Year
                 56   75  1921
                *45*  45  1921
                *77*  77  1922
                 67   41  1923
                *65*  65  1923


P.S:每年将*的值替换为B列中的A列

最佳答案

在R词典中,最容易阅读/理解的答案可能是使用ifelse。因此,借用Richard的数据框,我们可以做到:

df <- structure(list(A = c(56L, NA, NA, 67L, NA),
                     B = c(75L, 45L, 77L, 41L, 65L),
                     Year = c(1921L, 1921L, 1922L, 1923L, 1923L)),.Names = c("A", 
                                                                                                                            "B", "Year"), class = "data.frame", row.names = c(NA, -5L))
df$A <- ifelse(is.na(df$A), df$B, df$A)

关于r - 将值NA替换为R中另一列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34071875/

相关文章:

r - 根据位置向量拆分数据帧

用该列的中位数替换矩阵每一列中的 NA

r - 对于每一行,返回非 NA 值的列索引和名称

r - 对于列中的某些值,as.numeric 在没有明显原因的情况下返回 NA

r - 创建漂亮的输出

r - 寻求一种更干净的方法来避免嵌套 if 语句(使用 sapply)

R: dev.copy2pdf,多个图形设备到一个文件,如何追加到文件?

python - 使用其他数据帧替换数据帧中的值,并将字符串作为 Pandas 的键

java - 角色交换

string - 用于替换文件夹中每个文件中字符串的所有实例的 Unix 命令