如果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