Как отфильтровать столбцы матрицы, 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]