gpt4 book ai didi

r - 如何通过R中的字典映射列

转载 作者:行者123 更新时间:2023-12-04 21:40:05 26 4
gpt4 key购买 nike

我在 R 中有一个数据框。此数据框的一列采用 1 到 6 的值。我有另一个映射此列的数据框。有什么方法可以在不使用循环(使用某些函数)的情况下替换此列中的值?

     [,1] [,2]   
[1,] "1" "A"
[2,] "2" "B"
[3,] "3" "C"
[4,] "4" "D"

[1] 4 2 2 3 4 1 4 4

是否存在一个不使用循环就返回下面的向量的函数?
[1] D B B C D A D D

最佳答案

你可以试试

v1 <- c(4, 2, 2, 3, 4, 1, 4, 4)
LETTERS[v1]
#[1] "D" "B" "B" "C" "D" "A" "D" "D"

假设您的映射数据集第 2 列不只是“字母”
d1 <- data.frame(Col1=c(1,3,4,2), Col2=c('j1', 'c9', '19f', 'd18'),
stringsAsFactors=FALSE)

unname(setNames(d1[,2], d1[,1])[as.character(v1)])
#[1] "19f" "d18" "d18" "c9" "19f" "j1" "19f" "19f"

或者
d1$Col2[match(v1, d1$Col1)]
#[1] "19f" "d18" "d18" "c9" "19f" "j1" "19f" "19f"

关于r - 如何通过R中的字典映射列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28751879/

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