Как создать новый фрейм данных, удалив определенные значения в столбце? - PullRequest
1 голос
/ 11 ноября 2019

У меня есть набор данных с несколькими столбцами, что я хотел бы сделать, это создать новый набор данных / фрейм, просто исключив записи на основе того, является ли столбец определенным значением

Я искал похожеевопросы, которые пока не увенчались успехом, я пытаюсь добиться этого в базе R, пока я пробовал использовать скобки и функцию подмножества. Ниже вы можете увидеть, что я пытался сделать.


newdata<-dataset[dataset5$occupation!=c(2,3,4)```

I anticipated this would return the original dataset, with the exception that all entries where the column 'occupation' = 2,3,4 would be removed

1 Ответ

1 голос
/ 11 ноября 2019

Один из вариантов - %in%, а затем отрицание (!)

dataset[!dataset5$occupation %in% c(2,3,4),]

или subset

subset(dataset, !occupation %in% 2:4)

== или != работает, когда есть только одно значение для сравнения. Если оно больше и не равно количеству строк, то оно перерабатывается, т. Е. 2, 3, 4, 2, 3, 4, 2, 3, 4, ... до тех пор, пока оно не достигнет конца «занятия», т.е. проверим по позиции и это не то что нужно. Вместо этого с %in% он проверяет значения в любом месте столбца, давая вывод TRUE/FALSE, а с отрицанием (!) это возвращается на FALSE/TRUE

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