R: Как мне удалить элементы из каждой строки массива? - PullRequest
1 голос
/ 27 сентября 2019

У меня есть матрица / массив с M строками, N столбцами.

Я хочу удалить элементы из каждой строки в зависимости от того, выполнено ли условие для этого элемента (например, если x> 1 &х! = 5).

Обратите внимание, что количество удалений отличается для каждой строки, поэтому я не буду больше иметь матрицу: у каждой строки будет разное количество элементов после того, как мы закончим.

Но это нормально, тогда я просто хочу, чтобы все эти строки были в подходящем массиве.

Как это эффективно сделать в R?

1 Ответ

1 голос
/ 27 сентября 2019

Мы можем использовать apply с MARGIN = 1.Если количество возвращаемых элементов не одинаково, он вернет list из vector с вместо matrix

lst1 <- apply(M, 1, function(x) x[x > 1 & x !=5])

Другой вариант - сохранить структуру как таковую, но измените все остальные элементы на NA

M[!(M > 1 & M !=5)] <- NA

У большинства функций есть аргументы na.rm, которые принимают логическое значение TRUE/FALSE для удаления NA из анализа.или na.omit в строке или всей матрице или complete.cases для удаления NA строк

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...