R 使用sapply查找列表顺序锁定因子

R 使用sapply查找列表顺序锁定因子,r,sapply,R,Sapply,我使用sapply编写了一个函数,它获取数据帧列的元素并重命名它们。我使用查找列表和sapply来完成这项工作。奇怪的是,我在查找列表中的顺序改变了输出 以下是我的例子: this.frame <- cbind(c("AAA", "BBB", "CCC", "AAA", "BBB", "AAA"), c(1,2,3,4,1,3)) this.frame <- as.data.frame(this.frame) letter.switch <- c("AAA" = "AB", "

我使用sapply编写了一个函数,它获取数据帧列的元素并重命名它们。我使用查找列表和sapply来完成这项工作。奇怪的是,我在查找列表中的顺序改变了输出

以下是我的例子:

this.frame <- cbind(c("AAA", "BBB", "CCC", "AAA", "BBB", "AAA"), c(1,2,3,4,1,3))
this.frame <- as.data.frame(this.frame)
letter.switch <- c("AAA" = "AB", "BBB" = "BC", "CCC" = "CD")
sapply(this.frame[, 1], function(var) {
    letter.switch[var][[1]]
})
letter.switch <- c("BBB" = "BC", "AAA" = "AB", "CCC" = "CD")
sapply(this.frame[, 1], function(var) {
    letter.switch[var][[1]]
})

this.frame这不是一个bug。数据框中的第一列是一个因子。所谓bug,我指的是代码中的一个bug,如果我是指R,我很抱歉。请阅读
?data.frame
中的
stringAsFactor
参数。