[英]Using recode() with mutate() and across() to recode multiple variables in r
這是一個更多出於好奇的問題,因為我有一個解決我的問題的有效方法,但我真的很好奇。
我能夠使用 mutate/across/case_when 重新編碼 dataframe 中的多個變量(借助本網站上的答案,謝謝!)
但是我無法使用 recode() 做同樣的事情。 這是為什么?
數據設置:
library(tidyverse)
df <- data.frame(
var1 = c(1, 2, 1, 2),
var2 = c(1, 2, 1, 2),
var3 = c(1, 2, 1, 2)
)
此代碼有效:
df %>%
mutate(across(var1:var3, ~ case_when(.x == 1 ~ "No", .x == 2 ~ "Yes")))
此代碼吐出有關意外“=”的錯誤
df %>%
mutate(across(var1:var3, ~ recode(.x, 1 = "No", 2 = "Yes")))
這是為什么?
重新編碼數字時,您必須將它們用引號或反引號括起來:
library(tidyverse)
df <- data.frame(
var1 = c(1, 2, 1, 2),
var2 = c(1, 2, 1, 2),
var3 = c(1, 2, 1, 2)
)
df %>%
mutate(across(var1:var3, ~ recode(.x, "1" = "No", "2" = "Yes")))
#> var1 var2 var3
#> 1 No No No
#> 2 Yes Yes Yes
#> 3 No No No
#> 4 Yes Yes Yes
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.