当有NA时,将数据从一列移动到另一列

Mrm*_*eje 0 r dplyr

我有以下数据:

library(dplyr)

d <- data_frame(
     unique = c(1,2,3,4),
     lat = c(NA, 87.6, 78.6, 67.7),
     latitude= c(34.5, NA, 45.6, 34.8))
Run Code Online (Sandbox Code Playgroud)

我想要做的是当lat中有一个'NA'时(例如在第1列'lat'中有一个NA),取纬度值.所以我最终会得到一个名为'latitude_new'的新列(34.5, 87.6, 45.6, 34.8).

我确信这可以使用'来自dplyr的mutate来完成,我只是不太确定如何?

A. *_*man 5

使用dplyr::coalesce第一个非缺失值替换所有NA

library(dplyr)
d %>% mutate(latitude_new = coalesce(lat,latitude))

    # A tibble: 4 x 4
    unique   lat latitude latitude_new
    <dbl> <dbl>    <dbl>        <dbl>
    1      1  NA       34.5         34.5
    2      2  87.6     NA           87.6
    3      3  78.6     45.6         78.6
    4      4  67.7     34.8         67.7
Run Code Online (Sandbox Code Playgroud)