gpt4 book ai didi

r - plyr::mapvalues 的 dplyr 替代方案(使用字典重新编码)

转载 作者:行者123 更新时间:2023-12-03 15:54:37 32 4
gpt4 key购买 nike

plyr::mapvalues 可以根据字典重新编码向量,即现有值和替换值的两个匹配向量。

library(plyr)
data <- c("a", "b", "c", "a")
dict_old <- c("a", "b", "c")
dict_new <- c("Apple", "Banana", "Carrot")
mapvalues(data, dict_old, dict_new)
[1] "Apple" "Banana" "Carrot" "Apple"

在 dplyr 中,可以通过创建包含新值的列表并将旧值作为名称分配给列表元素来获得等效结果:
list <- as.list(dict_new)
names(list) <- dict_old
recode(data, !!!list)
[1] "Apple" "Banana" "Carrot" "Apple"

然而,这让我觉得相当笨拙。在 tidyverse 中是否有更清洁的方法来做到这一点?

最佳答案

使用 stringr 的一种方式可能:

str_replace_all(data, setNames(dict_new, dict_old))

[1] "Apple" "Banana" "Carrot" "Apple"

关于r - plyr::mapvalues 的 dplyr 替代方案(使用字典重新编码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62216940/

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