4

次のケースがあるとしましょう。

test = c("AA","bb")test whereおよびtest の各用語に switch ステートメントを適用しようとしています。mapping = c("AA"=5,"bb"=7)

私が行った場合

sapply(test, switch, mapping )

私は得る

    AA bb
AA  5  5
bb  7  7

c(5,7)私が望むのではなく。sapply(test,switch,...)最初の 2 つの引数が引き続きテストとスイッチであり、マッピングのベクトルを渡すことができるように変更する方法はありますか?

4

2 に答える 2

7

私はそれを答えにします、あなたはただ行うことができます:

mapping[test]
# AA bb 
# 5  7 
于 2013-04-03T03:52:04.757 に答える
3

これは、 switch で sapply を使用する場合に機能するようです。しかし、率直に言って、フローデルの反応は最も単純です。

test<-c(test,test)
sapply(test,function(x) do.call("switch",as.list(c(x,mapping))))
# AA  bb  AA  bb 
#"5" "7" "5" "7"
于 2013-04-03T03:15:29.350 に答える