Лучше присвоить логическое условие в 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