這純粹是一種好奇心(瞭解更多關於Reduce)。有更好的方法來實現我正在做的事情,我對它們不感興趣。使用Reduce/do.call與ifelse
有些人使用一系列嵌套的ifelse
命令來重新編碼/查找某些內容。也許它看起來像這樣:
set.seed(10); x <- sample(letters[1:10], 300, T)
ifelse(x=="a", 1,
ifelse(x=="b", 2,
ifelse(x=="c", 3,
ifelse(x=="d", 4, 5))))
有沒有爲使用do.call
或Reduce
與ifelse
來完成多一點雄辯地工作的方法嗎?
好問題。當然,在實踐中,像sapply(x,function(x)switch(x,a = 1,b = 2,c = 3,d = 4,5)這樣的東西可能是最乾淨的。 – 2012-08-03 15:23:57
@Richie謝謝。 d實際上是通過使用環境或使用'match'的標準索引來查找表,但我想知道'Reduce'還是'do.call'可以應用於這個問題。 – 2012-08-03 15:29:37
如:match(x,letters [1:4],nomatch = 5)' – 2012-08-03 17:18:29