【发布时间】:2019-09-07 14:59:56
【问题描述】:
我有两个具有相似维度和相似列名的数据集。目标是检查 NA 值是否存在于其中一个数据集中,并替换为另一个数据集中的相应值,如下例所示。
我曾尝试运行 for 循环来解决问题,但没有奏效并且惨遭失败。
df 是使用 NA 创建的新数据框
loop = for (a in 1:nrow(data1)) {
for (b in 1:ncol(data1)) {
for (c in 1:nrow(data2)) {
for (d in 1:ncol(data2)) {
for (x in 1:nrow(df)) {
for (y in 1:ncol(df)) {
df[x,y]<- ifelse(data1[a,b] != "NA", data1[a,b], data2[c,d])
return(df)`enter code here`
}
}
}
}
}
}
示例
# The first data frame
structure(list(age = c(23, 22, 21, 20), gender = c("M", "F",
NA, "F")), row.names = c(NA, -4L), class = c("tbl_df", "tbl",
"data.frame"))
# age gender
# 1 23 M
# 2 22 F
# 3 21 NA
# 4 20 F
# The second data frame
structure(list(age = c(23, 22, 21, 20), gender = c("M", "F",
"M", "F")), row.names = c(NA, -4L), class = c("tbl_df", "tbl",
"data.frame"))
# age gender
# 1 23 M
# 2 22 F
# 3 21 M
# 4 20 F
期望的输出
Age Gender
23 M
22 F
21 M
20 F
【问题讨论】: