gpt4 book ai didi

r - 如何更改现有数据集中因子的级别名称

转载 作者:行者123 更新时间:2023-12-04 08:33:04 27 4
gpt4 key购买 nike

我有以下数据集:

   Rate       WUE
1 1 11.071188
2 1 15.334987
3 1 11.074738
4 1 13.101628
5 1 17.516873
6 1 15.408335
7 1 15.064044
8 1 14.890052
9 1 14.552573
10 1 15.392169
11 1 14.041053
12 1 11.269646
13 2 17.320536
14 2 8.905063
15 2 16.376546
16 2 15.202152
17 2 13.262815
18 2 10.568496
19 2 15.904926
20 2 15.189488
21 2 16.714268
22 2 17.803819
23 2 16.217470
24 3 9.030102
25 3 17.508928
26 3 13.454914
27 3 16.403707
28 3 9.931559
29 3 20.487025
30 3 16.314383
31 3 17.023167
32 3 17.095327
33 3 12.090982
34 3 15.227999
35 3 12.996101
36 4 17.626385
37 4 16.791135
38 4 17.015173
39 4 21.266143
40 4 15.576164
41 4 10.649791
42 4 19.238123
43 4 17.586917
44 4 20.408033
45 4 14.832184
46 4 12.735369
47 4 17.657028
并希望将“Rate”级别的名称从 1-4 更改为实际描述。有没有办法用代码做到这一点?我想避免在 excel 中这样做。我在 stackoverflow 上使用了搜索功能,但无法找到适用于此类数据集的答案。在此先感谢您的帮助,如果还有什么我可以添加的,请告诉我。

最佳答案

这是使用 mutate 的解决方案来自 dplyr包装和 fct_recode来自 forcats包裹。请注意,我使用 tibble 创建了示例数据。来自 tibble包裹。这里有一些关于创建正确的附加信息 reproducible example .mutate允许我们修改现有的 Rate多变的。fct_recode允许您更改因子级别名称。as.factor来自 base r用于强制Rate变量为因子。
如果您对重新排序因子水平感兴趣,您应该考虑使用 fct_relevel来自 forcats包裹。
代码:

library(tibble)
library(dplyr)
library(forcats)

df <- tibble(
Rate = c(1, 1, 2, 2, 3, 3, 4, 4),
WUE = c(10.1, 10.1, 11.2, 11.2, 12.3, 12.3, 13.4, 13.4)
)

df %>%
mutate(
Rate = fct_recode(as.factor(Rate),
description_1 = "1",
description_2 = "2",
description_3 = "3",
description_4 = "4")
)
输出:
#> # A tibble: 8 x 2
#> Rate WUE
#> <fct> <dbl>
#> 1 description_1 10.1
#> 2 description_1 10.1
#> 3 description_2 11.2
#> 4 description_2 11.2
#> 5 description_3 12.3
#> 6 description_3 12.3
#> 7 description_4 13.4
#> 8 description_4 13.4
原表:
# A tibble: 8 x 2
Rate WUE
<dbl> <dbl>
1 1 10.1
2 1 10.1
3 2 11.2
4 2 11.2
5 3 12.3
6 3 12.3
7 4 13.4
8 4 13.4
创建于 2020-11-20 由 reprex package (v0.3.0)

关于r - 如何更改现有数据集中因子的级别名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64935117/

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