gpt4 book ai didi

基于具有相同标签和多个值的两个向量(级别和标签)重新编码值以替换

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

我正在尝试根据某些级别和标签重新编码向量的值。重要的是,我可以用大量其他值(标签)替换(级别)的大量值,而且我事先不知道我有多少。此外,两个级别可以具有相同的标签。

这是一个例子:我有一个向量“a”。我想通过“a_labels”中的相应标签重新编码“a_levels”中的每个值。

a = c(5,6,5,5,7,8,7)
a_levels = c(5, 6, 7, 8)
a_labels = c('a', 'a', 'c', 'd')

我可以假设 a_levels 的第一个值对应于 a_labels 等的第一个值)

所以我想得到

[1] "a" "a" "a" "a" "c" "d" "c"

重要的是,我有一些限制不允许我应用如此常见的解决方案:

1) 请注意,a_labels 包含两次标签“a”,所以我不能使用

factor(a, levels = a_levels,
labels = a_labels)

2) 在我的数据中,我有很多值(value)可以替代,但我什至不知道提前我需要用哪些标签替换哪些级别。我只得到两个向量 a_levels 和 a_labels由于这些原因,我无法使用多个 ifelse() 语句,或 dplyr 中的重新编码函数。

recode(a, 
'5' = 'a',
'6' = 'a',
'7' = 'c',
'8' = 'd')

因为我事先不知道值和标签。

这样做应该很简单,但是我没有找到方法。

最佳答案

感谢尼古拉。以下效果非常好。

a_labels[ match(a,a_levels) ]

关于基于具有相同标签和多个值的两个向量(级别和标签)重新编码值以替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49388313/

25 4 0