#r #vector
#r #вектор
Вопрос:
Как я могу удалить только элемент из вектора в R? Например,
x = c(1, 2, 0, 3, 1, 4, 2, 0)
Я хочу случайным образом удалить только один из нулей. Затем
x = c(1, 2, 0, 3, 1, 4, 2)
или
x = c(1, 2, 3, 1, 4, 2, 0)
Комментарии:
1. Я не понимаю, почему люди голосуют за закрытие, этот вопрос ясен.
Ответ №1:
Чтобы случайным образом выбрать, какой ноль удаляется, вы можете использовать
x[-sample(which(x == 0), 1)]
Очевидно, что вышеописанное будет работать только в том случае, если в x
есть хотя бы один ноль. В качестве гарантии вы можете использовать if()
инструкцию.
if(length(w <- which(x == 0))) x[-sample(w, 1)] else x
# [1] 1 2 0 3 1 4 2
if(length(w <- which(x == 0))) x[-sample(w, 1)] else x
# [1] 1 2 3 1 4 2 0
Выполняя поиск 11
там, где их нет, мы получаем весь вектор x
обратно.
if(length(w <- which(x == 11))) x[-sample(w, 1)] else x
# [1] 1 2 0 3 1 4 2 0