gpt4 book ai didi

在 dplyr 中从字符重新编码为因子中的数字

转载 作者:行者123 更新时间:2023-12-05 01:22:18 25 4
gpt4 key购买 nike

我从 dplyr V0.5 开始熟悉 recode。我错过了什么吗?似乎 car 中的 Recode 效率更高。除非我做错了什么:

这个有效:

x <- c("a", "b", "c")
y <- dplyr::recode(x, a = 1, b = 2, c= 3)
y

但不是当你有一个因素时:

xf <- factor(c("a", "b", "c"))
yf<- dplyr::recode(xf, a = 1, b = 2, c= 3)
Error: `a` has type 'double' not 'character'

似乎您必须将其视为字符并使用 recode_factor 以便它返回到 factor

Dyf <- dplyr::recode_factor(as.character(xf), a = 1, b = 2, c= 3)
Dyf

这样可以,但看起来很冗长??? Recode from car 可以简单地用:

Cyf <- Recode(x, " 'a'=1; 'b'= 2; 'c' = 3 ")
Cyf [1] 1 2 3
Levels: 1 2 3

我错过了什么?

谢谢

最佳答案

看起来 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 创建于 2019-08-28 (v0.3.0)

关于在 dplyr 中从字符重新编码为因子中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40622745/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com