假设我有以下情况:
我正在尝试将switch语句应用于测试中的每个字词test = c("AA","bb")
和mapping = c("AA"=5,"bb"=7)
如果我这样做
sapply(test, switch, mapping )
我得到了
AA bb
AA 5 5
bb 7 7
而不是我想要的c(5,7)
。有没有办法修改sapply(test,switch,...)
,以便前两个参数仍然是测试和切换,我能够传递一个映射的向量?
答案 0 :(得分:5)
我会把它作为答案,你可以这样做:
mapping[test]
# AA bb
# 5 7
答案 1 :(得分:3)
这似乎适用于使用带开关的蓝宝石。但坦率地说,弗洛尔的反应最简单。
test<-c(test,test)
sapply(test,function(x) do.call("switch",as.list(c(x,mapping))))
# AA bb AA bb
#"5" "7" "5" "7"