我使用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]]
})

似乎它按字母顺序将矢量与查找列表进行比较,并且每个的相应元素都匹配,但我无法弄清楚原因 . 任何人都可以解决这个问题并帮助我找到解决方案吗?