我想基于列年的年份,用列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/