跨列变异并用 case_when 替换条目
Mutate across columns and replace entries with 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
试试这个:
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
由 reprex package (v2.0.1)
创建于 2022-05-11
在base
R 中:
df[, c("b", "c")][is.na(df[, c("b", "c")])] <- "here"
只需声明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
我正在尝试在列和单元格符合条件时更改单元格条目。
数据:
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
试试这个:
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
由 reprex package (v2.0.1)
创建于 2022-05-11在base
R 中:
df[, c("b", "c")][is.na(df[, c("b", "c")])] <- "here"
只需声明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