我一直在使用该dplyr::recode()函数来重新编码一些变量。我有一个带有一些空字符串的字符变量,我也想重新编码。但是,如果我在函数的参数中引用空字符串,则会出现错误。
# input
x <- c("a", "b", "", "x", "y", "z")
# desired output
c("Apple", "Banana", "Missing", "x", "y", "z")
dplyr::recode(x, "a"="Apple", "b"="Banana", ""="Missing")
Error: attempt to use zero-length variable name
Run Code Online (Sandbox Code Playgroud)
如果我将空字符串视为缺失值,则该函数会将其保留为空字符串。
dplyr::recode(x, "a"="Apple", "b"="Banana", .missing="Missing")
[1] "Apple" "Banana" "" "x" "y" "z"
Run Code Online (Sandbox Code Playgroud)
如何重新编码值以获得所需的输出?
您可以使用na_if来.missing正常工作:
x <- c("a", "b", "", "x", "y", "z")
dplyr::recode(na_if(x,""), "a"="Apple", "b"="Banana", .missing="Missing")
[1] "Apple" "Banana" "Missing" "x" "y" "z"
Run Code Online (Sandbox Code Playgroud)