R исключить, если любой столбец содержит -1 - PullRequest
0 голосов
/ 07 июня 2018

Я должен исключить данные, если любой из около 80 столбцов из моего набора данных имеет значение -1.Общее количество столбцов равно 100, а остальные 20 столбцов могут иметь значения -1.Я знаю, что это можно сделать с помощью подмножества, например:

keep_data <- subset(foo, Var1 != -1 | Var2 != -1 | Var3 != -1 ....... upto Var80)

Можно ли это сделать любым другим способом, когда мне не нужно передавать все 80 переменных в подмножестве, вместо этого я могу передать список иликакой-то другой метод?

1 Ответ

0 голосов
/ 07 июня 2018

Вы можете определить cols как символьный вектор вместо числового, если хотите

cols <- 2:4 #Columns which we'll check for -1

# Remove rows for which any of cols (defined above) are -1
subset(df, !rowSums(df[cols] == -1))

#You can also use brackets instead of subset
df[!rowSums(df[cols] == -1),]
...