У меня есть x
, какУдалить два самых уникальных номеров из вектора
x <- c("7", "2", "3", "8", "8")
Я хочу, чтобы выходной
[1] "2" "3" "8"
и удалить одну из 8 и 7. Таким образом, удаление одного из двух крупнейших чисел.
У меня есть x
, какУдалить два самых уникальных номеров из вектора
x <- c("7", "2", "3", "8", "8")
Я хочу, чтобы выходной
[1] "2" "3" "8"
и удалить одну из 8 и 7. Таким образом, удаление одного из двух крупнейших чисел.
Существует много способов сделать это. Я думаю, что вектор x должен быть отброшен до числового, но это работает.
x <- (c('7','2','3','8','8')) # read in data
remove <- tail(unique(x[order(x)]),2) # take the unique elements and sort, identifying the last 2
x[ - c(which(x==remove[1])[1], which(x==remove[2])[1]) ] #remove only the one of each of the two found
Это возможность с match()
.
x[-match(tail(sort(unique(x)), 2), x)]
# [1] "2" "3" "8"
Другой вариант использования which.max
x[-c(which.max(x), match(max(x[x != max(x)]), x))]
#[1] 2 3 8
Это должно быть принято решение, как единственный вариант, который простирается более чем на 2 удалений. – Frank