Подмножество оставшегося кадра данных, используя другое подмножество - PullRequest
1 голос
/ 20 марта 2019

У меня есть образец набора данных.Я создал подмножество исходного фрейма данных с использованием некоторого условия.Теперь мне нужно извлечь оставшееся содержимое исходного образца данных, кроме созданного подмножества.Как я могу это сделать?

data("mtcars")
fulldf <- mtcars
subdf <- subset.data.frame(fulldf, subset = fulldf$disp < 100)
restdf <- subset.data.frame(fulldf, subset = <fulldf without subdf>)

Существует множество вопросов по поднабору фреймов данных в R, но я не смог найти тот, который удовлетворял бы моим требованиям.Кроме того, окончательное решение не обязательно должно использовать subset.data.frame.Подойдет любой метод / пакет.

1 Ответ

1 голос
/ 20 марта 2019

Лучше присвоить логическое условие в base R идентификатору объекта, а затем отрицать (!)

i1 <- fulldf$disp < 100
subdf <- subset.data.frame(fulldf, subset = i1)
restdf <- subset.data.frame(fulldf, subset = !i1) 

Также другой вариант - создать list издва набора данных с split

lst1 <- split(fulldf, i1)

Если 'subdf' создается с несколькими условиями (хотя и не ясно), один из вариантов - добавить переменную последовательности в данные, а затем подмножество с %in%

fulldf$ind <- seq_len(nrow(fulldf))

затем после шага 'subdf'

restdf <- subset(fulldf, !ind %in% subdf$ind)

и удалите столбцы 'ind'

restdf$ind <- NULL
subdf$ind <- NULL
...