r语言 - 跨列修改,用case_when替换条目



当列和单元格满足条件时,我试图更改单元格条目。

数据:

df <- data.frame(a=c("a", "ab", "ac"), b=c("b", "bc", NA), c=c("c", NA, "cda"))
> df
a    b    c
1  a    b    c
2 ab   bc <NA>
3 ac <NA>  cda

尝试:

> df %>% mutate(across(matches("b", "c"), ~case_when(. %in% "c" & is.na(.) ~ "here", TRUE ~ as.character(.))))
a    b    c
1  a    b    c
2 ab   bc <NA>
3 ac <NA>  cda

查找这个:

a    b    c
1  a    b    c
2 ab   bc  here
3 ac  here  cda

仅在across中声明变量,即

df %>% 
mutate(across(c('b', 'c'), ~replace(., is.na(.), 'here')))
a    b    c
1  a    b    c
2 ab   bc here
3 ac here  cda

试试这个:

library(tidyverse)
data.frame(a=c("a", "ab", "ac"), b=c("b", "bc", NA), c=c("c", NA, "cda")) |> 
mutate(across(everything(), ~if_else(is.na(.), "here", .)))
#>    a    b    c
#> 1  a    b    c
#> 2 ab   bc here
#> 3 ac here  cda

在2022-05-11由reprex包(v2.0.1)创建

InbaseR:

df[, c("b", "c")][is.na(df[, c("b", "c")])] <- "here"

最新更新