簡體   English   中英

跨列變異並用 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 包於 2022-05-11 創建 (v2.0.1)

只需across cross 中聲明變量,即

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

base R 中:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM