R idiom for vector lookup
问题 Here is a function which I wrote: lookup <- function (keys, values, key, default) { found <- which(keys == key) if (length(found) == 1) return(values[found]) if (length(found) == 0) return(default) stop("lookup(",keys,",",values,",",key,",",default,"): duplicate keys") } and it does what I need just fine: > lookup(c("a"),c(3),"a",0) [1] 3 > lookup(c("a"),c(3),"b",0) [1] 0 > lookup(c("a","a"),c(3),"a",0) Error in lookup(c("a", "a"), c(3), "a", 0) : lookup(aa,3,a,0): duplicate keys the question