Как отбросить некоторые наблюдения, основанные на значении одной переменной в R? - PullRequest
0 голосов
/ 10 марта 2019

У меня есть набор данных, когда у меня есть три переменные, которые могут принимать следующие значения -2, -1, 0, 1, 2, 3, 4, 5 По какой-то причине я хочу работать с этими переменными, только когда наблюдения равны 1, 2, 3, 4 or 5.Другими словами, я хочу отбросить наблюдения, когда var1/var2/var3=-2, -1 or 0 Я знаю, что в Stata это делается с помощью команды DROP (drop if var1 == 0 / drop if var1<0...).Есть ли аналогичный эквивалент в R?Спасибо

1 Ответ

0 голосов
/ 10 марта 2019

Если ваш data.frame равен df, один из способов сделать это был бы следующим: ...

df <- data.frame( #an example
        var1 = c(1, 2, 3),
        var2 = c(-1, 3, 4),
        var3 = c(2, 3, -2)
      )

df
  var1 var2 var3
1    1   -1    2
2    2    3    3
3    3    4   -2

df[apply(df, 1, function(x)
          ! any(x %in% c(0, -1, -2))), ]

  var1 var2 var3
2    2    3    3

Функция apply запускает строки df и имеет значение TRUE для строк, которые не (!) имеют значение any в наборе c(0, -1, -2).Этот логический вектор затем используется для поднабора строк df.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...