2013-04-03 3 views
2

Допустим, у меня есть следующий случай:Использование sapply с переключателем

Я пытаюсь применить переключатель заявление к каждому члену в тесте, где 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,...) так, что первые 2 аргумента все еще проверяются и переключаются, и я могу передать вектор для отображения?

+4

ничего плохого просто делает 'отображение [тест]'? – flodel

ответ

4

Я сделаю это ответ, то вы можете просто сделать:

mapping[test] 
# AA bb 
# 5 7 
2

Это, кажется, работает для , используя 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" 
Смежные вопросы