Необходимо поднабор, исключая несколько значений в категориальной переменной - PullRequest
0 голосов
/ 25 января 2019

У меня есть категориальное поле, и я хочу установить поднабор, исключив несколько значений.

Изначально я предполагал, что могу просто перечислить все нужные значения непосредственно в коде или создать отдельный список и добавить его обратно в код (см. Ниже).

subset(data, data$variable != c("x1", "x2", "x3"))

или

Exclude_Prod = c("x1", "x2", "x3)

subset(data, data$variable != Exclude_Prod)

У меня есть несколько значений в одном поле, которое является категориальной переменной.

Я хочу исключить эти множественные значения и затем установить подмножество данных. Причина, по которой я хочу исключить, заключается в том, что по сравнению с теми, которые я хочу сохранить, значений меньше.

Ответы [ 3 ]

0 голосов
/ 25 января 2019

Спасибо, Нельсон. После тяжелого поиска, получения справки, проб и ошибок я использовал tidyverse:

data2 <- data1 %>%
  filter(variable != "x1" & variable != "x2")
0 голосов
/ 26 января 2019

a data.table way:

require(data.table)
setDT(data)[! variable %in% c("x1", "x2", "x3"), ]

Обратите внимание, что называть фрейм данных "data" - плохая идея, поскольку в пакете utils есть функция с именем data.

0 голосов
/ 25 января 2019

Попробуйте: замените соответствующими переменными. data3 - это набор данных.

library(dplyr)

Использование некоторых поддельных данных: С base R

data3[!data3$Exclude_Prod%in%c("x1","x2"),]

«Недостатком» является то, что база R сохраняет первоначальное индексирование. С dplyr

data3<-data.frame(Sales=c(11,12,13),Exclude_Prod = c("x1", "x2", "x3"))
data3 %>% 
  filter(!Exclude_Prod%in%c("x1","x2"))

Результат:

 Sales Exclude_Prod
1    13           x3

Оригинальный ответ:

 mtcars %>% 
      mutate(ID=row.names(.)) %>% 
      select(ID) %>% 
      filter(!ID%in%c("Volvo 142E","Toyota Corona"))#eg Variable%in%c("x1", "x2", "x3)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...