[英]Using case_when() within mutate_at() to recode rows of selected columns with different types with NA
[英]Using case_when within mutate_at
我想在mutate_at
使用case_when
,如下例所示:
mtcars %>%
mutate_at(.vars = vars(vs, am),
.funs = funs(case_when(
. %in% c(1,0,9) ~ TRUE
. %in% c(2,20,200) ~ FALSE
TRUE ~ as.character(.)
)))
替代版本使用. =
. =
在funs()
調用也不起作用。
mtcars %>%
mutate_at(.vars = vars(vs, am),
.funs = funs(. = case_when(
. %in% c(1, 0, 9) ~ TRUE
. %in% c(2, 20, 200) ~ FALSE
TRUE ~ as.character(.)
)))
mtcars %>%
mutate_at(.vars = vars(vs, am),
.funs = funs(ifelse(. %in% c(1, 0, 9), TRUE, FALSE)))
可以用第二個ifelse()
調用替換FALSE
,為簡潔起見,我沒有包含這個調用。
我們需要,
每個案件分開。 另外,如果我們將最后一個選項保留為character
,那么TRUE/FALSE
應該是字符。 沒有混合的類型
mtcars %>%
mutate_at(.vars = vars(vs, am),
.funs = funs(. = case_when(
. %in% c(1, 0, 9) ~ TRUE,
. %in% c(2, 20, 200) ~ FALSE,
TRUE ~ TRUE
)))
如果我們需要創建character
類,並且如果兩種情況中的任何一種不正確,也可以將列作為字符返回
mtcars %>%
mutate_at(.vars = vars(vs, am),
.funs = funs(. = case_when(
. %in% c(1, 0, 9) ~ "Yes",
. %in% c(2, 20, 200) ~ "No",
TRUE ~ as.character(.)
)))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.