根据R中的条件合并列

时间:2017-12-21 09:36:38

标签: r if-statement merge

我想合并两列 lat.x lat.y ,因此我得到一个新列 lat

数据:

lat.x    lat.y    lat
  1        1       1
  2        2       2
 NA        3       3
  4        NA      4
  5        6       5

我试过了:

df2$Lat <- ifelse(df$Lat.x == "NA", df$Lat.y, df$Lat.x)

1 个答案:

答案 0 :(得分:1)

如果x == "NA"是一个字符为x的文字字符串,则您无法使用"NA"测试NA。相反,您应该使用基函数is.na()

这有效:

df <- data.frame(
  lat.x = c(1, 2, NA, 4, 5),
  lat.y = c(1, 2, 3, NA, 5)
)

df$lat <- ifelse(is.na(df$lat.x), df$lat.y, df$lat.x)

此外,您应该考虑以可复制粘贴的格式提供示例数据(就像我上面所做的那样)。这样可以更轻松地测试代码并提供答案。