setdiff()
требует, чтобы его первый векторный аргумент был длиннее, чем его второй векторный аргумент. Чтобы преодолеть это ограничение, я стараюсь всегда указывать более длинный из двух аргументов и более короткий второй.
which.max()
дает индекс (ind
) более длинного аргумента, но мне интересно, как получитьind
для более короткого аргумента без использования which.min()
?
Вот что я делаю:
a = c("bob", "jim", "jon")
b = c("bob", "jim", "jon", "al")
NAMES <- list(a, b)
ind <- which.max(sapply(NAMES, length)) # index for lengthier of `a` and `b`
setdiff(NAMES[[ind]], NAMES[[???]])#But what to put for ind of shorter arg: NAMES[[!ind]] fails