Вероятно, есть более элегантный способ сделать это, но возможное решение состоит в том, чтобы подсчитать количество элементов в строках, которые не NA
, и оставить только строки с количеством элементов, равным количеству столбцов.
Используя этот фиктивный пример:
df <- data.frame(A = LETTERS[1:6],
B = c(sample(1:10,5),NA),
C = letters[1:6])
A B C
1 A 5 a
2 B 9 b
3 C 1 c
4 D 3 d
5 E 4 e
6 F NA f
Используя apply
, вы можете для каждой строки подсчитать количество элементов без NA
:
v <- apply(df,1, function(x) length(na.omit(x)))
[1] 3 3 3 3 3 2
И затем оставьте только строки с количеством элементов, равным количеству столбцов (которые соответствуют полным строкам):
df1 <- df[v == ncol(df),]
A B C
1 A 5 a
2 B 9 b
3 C 1 c
4 D 3 d
5 E 4 e
Это отвечает на ваш вопрос?