我熟悉recode
V0.5中的dplyr
。我错过了什么吗?似乎来自Recode
的{{1}}更有效率。除非我做错了什么:
这有效:
car
但是当你有一个因素时却不是这样:
x <- c("a", "b", "c")
y <- dplyr::recode(x, a = 1, b = 2, c= 3)
y
好像你必须将它视为字符并使用recode_factor以便它回到因子
xf <- factor(c("a", "b", "c"))
yf<- dplyr::recode(xf, a = 1, b = 2, c= 3)
Error: `a` has type 'double' not 'character'
那会起作用但看起来很啰嗦???来自Dyf <- dplyr::recode_factor(as.character(xf), a = 1, b = 2, c= 3)
Dyf
的{{1}}只会执行以下操作:
Recode
我遗失了什么?
感谢
答案 0 :(得分:0)
看起来像dplyr
的功能已得到增强,可以执行您想要的操作:
library(dplyr)
#> Warning: package 'dplyr' was built under R version 3.5.3
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
xf <- factor(c("a", "b", "c"))
Eyf<- xf %>% dplyr::recode_factor(a = 1, b = 2, c= 3)
Eyf
#> [1] 1 2 3
#> Levels: 1 2 3
Fyf<- xf %>% dplyr::recode(a = 1, b = 2, c= 3) %>% factor()
Fyf
#> [1] 1 2 3
#> Levels: 1 2 3
由reprex package(v0.3.0)于2019-08-28创建