Как отфильтровать столбцы матрицы, IQR которой ниже определенного значения?

filter <- apply(expressionMatrix, 2, function (x) (colIQRs(x, na.rm = TRUE) < 1.6))

"Аргумент x имеет числовой класс, должен быть матрицей". Как с этим справиться? Я думаю, что логически этот код является правильным: я удаляю все столбцы, чьи значения IQR меньше 1,6.

Как это технически закодировать?

1 ответ

colIQR из пакета matrixStats требует матрицы в качестве входных данных. Но, завернув его в apply утверждение, вы даете ему только один столбец вектор за один раз. Решение состоит в том, чтобы отправить всю матрицу в colIQR, а затем подмножество результата:

filter <- expressionMatrix[, colIQRs(expressionMatrix, na.rm = TRUE) < 1.6]
Другие вопросы по тегам