R: mutate()和ifelse()现在保留列的原始值



如果MAYBE列的值为1,我想将MAYBE列的值分配给NO_HIT列。在其他情况下,我希望保留NO_HIT列的原始值。

My original table:

GCA_id          family               `NO HIT` MAYBE   HIT
<chr>           <chr>                   <dbl> <dbl> <dbl>
GCA_000091205.1 Cyanidiaceae                1    NA    NA
GCA_000341285.1 Cyanidiaceae               NA     1    NA
GCA_000350225.2 Gigartinaceae              NA     1    NA
GCA_000372725.1 Noelaerhabdaceae            1    NA    NA
GCA_002049455.2 Bangiaceae                  1    NA    NA
GCA_002049455.2 Bangiaceae                 NA     1     1
GCA_002205965.3 Solieriaceae               NA     1     1

但是当我尝试table %>% mutate(`NO HIT` = ifelse(MAYBE == 1, 1, `NO HIT`))时,它忽略了NO_HIT列的原始值,并单独分配MAYBE列的值,导致:

GCA_id          family               `NO HIT` MAYBE   HIT
<chr>           <chr>                   <dbl> <dbl> <dbl>
GCA_000091205.1 Cyanidiaceae               NA    NA    NA
GCA_000341285.1 Cyanidiaceae                1     1    NA
GCA_000350225.2 Gigartinaceae               1     1    NA
GCA_000372725.1 Noelaerhabdaceae           NA    NA    NA
GCA_002049455.2 Bangiaceae                 NA    NA    NA
GCA_002049455.2 Bangiaceae                  1     1     1
GCA_002205965.3 Solieriaceae                1     1     1

根据评论中的答案,这是你想要的吗?

tib <- tibble::tribble(
~id,            ~family, ~no_hit, ~maybe, ~hit,
"GCA_000091205.1",     "Cyanidiaceae",       1,     NA,   NA,
"GCA_000341285.1",     "Cyanidiaceae",      NA,      1,   NA,
"GCA_000350225.2",    "Gigartinaceae",      NA,      1,   NA,
"GCA_000372725.1", "Noelaerhabdaceae",       1,     NA,   NA,
"GCA_002049455.2",       "Bangiaceae",       1,     NA,   NA,
"GCA_002049455.2",       "Bangiaceae",      NA,      1,    1,
"GCA_002205965.3",     "Solieriaceae",      NA,      1,    1
)

tib %>%
mutate(no_hit = if_else(!is.na(maybe) & maybe == 1, maybe, no_hit))
#> # A tibble: 7 × 5
#>   id              family           no_hit maybe   hit
#>   <chr>           <chr>             <dbl> <dbl> <dbl>
#> 1 GCA_000091205.1 Cyanidiaceae          1    NA    NA
#> 2 GCA_000341285.1 Cyanidiaceae          1     1    NA
#> 3 GCA_000350225.2 Gigartinaceae         1     1    NA
#> 4 GCA_000372725.1 Noelaerhabdaceae      1    NA    NA
#> 5 GCA_002049455.2 Bangiaceae            1    NA    NA
#> 6 GCA_002049455.2 Bangiaceae            1     1     1
#> 7 GCA_002205965.3 Solieriaceae          1     1     1
# Created on 2023-01-09 with reprex v2.0.2

最新更新