У меня есть следующий набор данных:Удаление строк на основе значений определенных столбцов
ID <- c(1,2,3,4,5,6,7,8,9,10)
x1 <- c(1.3, 1.4, NA, NA, 1.4, -1.0, NA, 0.3, 0.7, NA)
x2 <- c(4.6, 2.6, NA, 4.3, NA, 5.6, NA, 3.7, 5.3, NA)
x3 <- c(-0.9, 5.6, NA, -1.3, NA, -3.4, NA, 0.3, -2.6, NA)
x4 <- c(10.5, NA, NA, 0.1, -0.5, NA, NA, 21.5, 2.0, NA)
x5 <- c(9.5, -5.0, NA, -0.7, 3.6, 3.8, -7.8, 9.8, -12.2, NA)
x6 <- c(-10.3, NA, -4.4, NA, 12.2, NA, NA, -4.1, 3.3, NA)
alldata <- data.frame(ID,x1,x2,x3,x4,x5,x6)
ID x1 x2 x3 x4 x5 x6
1 1.3 4.6 -0.9 10.5 9.5 -10.3
2 1.4 2.6 5.6 "NA" -5.0 "NA"
3 "NA" "NA" "NA" "NA" "NA" -4.4
4 "NA" 4.3 -1.3 0.1 -0.7 "NA"
5 1.4 "NA" "NA" -0.5 3.6 12.2
6 -1.0 5.6 -3.4 "NA" 3.8 "NA"
7 "NA" "NA" "NA" "NA" -7.8 "NA"
8 0.3 3.7 0.3 21.5 9.8 -4.1
9 0.7 5.3 -2.6 2.0 -12.2 3.3
10 "NA" "NA" "NA" "NA" "NA" "NA"
Мне нужно удалить любую строку, если значения x1-Х5 ALL «NA», и я не уход имеет ли x6 значение или «NA».
Так что мои данные будут выглядеть следующим образом:
ID x1 x2 x3 x4 x5 x6
1 1.3 4.6 -0.9 10.5 9.5 -10.3
2 1.4 2.6 5.6 "NA" -5.0 "NA"
4 "NA" 4.3 -1.3 0.1 -0.7 "NA"
5 1.4 "NA" "NA" -0.5 3.6 12.2
6 -1.0 5.6 -3.4 "NA" 3.8 "NA"
7 "NA" "NA" "NA" "NA" -7.8 "NA"
8 0.3 3.7 0.3 21.5 9.8 -4.1
9 0.7 5.3 -2.6 2.0 -12.2 3.3
Примите во внимание, что ваш 'NA' не' NA's, но факторы, потому что вы набрали с '" 'и так R читает их как символы строки. Поскольку che 'strAsAsFactor' по умолчанию имеет значение TRUE, это факторы. – SabDeM
Да, вам нужно избавиться от котировок для R, чтобы интерпретировать эти «NA» как NA. Затем взгляните на функцию anyNA(), которую вы можете использовать для применения, чтобы удалить строки. – darwin
просто исправил его. Спасибо. – user9292