Теперь мне нужно разбить эту матрицу на две матрицы на основе столбца со значениями «NA», со всеми «NA» и другими без «NA».Нанесение одной матрицы на две матрицы на основе «NA»
Вход:
>k
a u v
[1,] "10" "mature" "MIMAT0000062"
[2,] "20" "stemloop" "NA"
[3,] "40" "mature_2" "MIMAT0000043"
Вывод должен быть, как
>k1
a u v
[1,] "10" "mature" "MIMAT0000062"
[2,] "40" "mature_2" "MIMAT0000043"
>k2
a u v
[1,] "20" "stemloop" "NA"
Есть ли функция, чтобы сделать это?
Настоящий NA без кавычек и использование символа '' NA "' не очень полезно для вас. Что делать, если один из NA находится в первой строке столбца «u»? Или это относится только к столбцу «v»? Для этого случая 'lapply (split (seq_len (nrow (k1)) is.na (k1 [, 3])), функция (i) k1 [i ,, drop = FALSE])' (если у вас есть реальные NA) – akrun
«Есть ли какая-нибудь функция?» Да, есть: 'is.na()' – PoGibas
@akrun Я думаю, что просто 'split (as.data.frame (k), is.na (k [, 3]))' должен делать, если OP в порядке с структура 'data.frame' в списке –