【发布时间】:2018-02-23 10:49:58
【问题描述】:
我有一个向量,我想根据另一个向量替换其中的一些值。
我为此使用plyr::revalue:
x = c("a", "b", "c", "d", "", " ", "d, ", "aaaaa")
var.replace = c("d"=NA, "a"="A")
x %>% plyr::revalue(var.replace)
#[1] "A" "b" "c" NA "" " " "d, " "aaaaa"
var.replace = c("d"=NA, "a"="A", ""=NA)
#Error: attempt to use zero-length variable name
我知道One of the factor's levels is an empty string; how to replace it with non-missing value? 的问题有一个公认的答案,但我正在寻找一个优雅的单行字,本着 tidyverse 的精神。
存在吗?
【问题讨论】:
-
也许像
replace(x, x == '', NA) %>% plyr::revalue(var.replace)? -
在阅读时使用
na.strings不是更容易,例如""和"d" -
@akrun 我不能,因为数据库很烂,空字符串有时是
NA,有时是0。 -
但是如果你用
na.strings将empty设置成NA,那么重估0不是更容易吗?