2015-02-02 2 views
0

Допустим, у меня есть эти данные:Удаление некоторых лиц из data.frame

set.seed(123) 
data <- data.frame(IndID = rep(c("AAA", "BBB", "CCC", "DDD", "EEE"),10), 
    ValueOne = rnorm(50), 
    ValueTwo = rnorm(50)) 
head(data) 

При наличии 50 наблюдений двух различных значений из 5 человек (AAA - EEE).

Я хочу подмножить данные примера, чтобы исключить Inds «AAA», «BBB» и «EEE» и назвали их новым объектом.

RemoveInds <- c("AAA","BBB","EEE") 

Как создать новую data.frame, исключающую этих людей и делает это с помощью объекта RemoveInds?

Что мне здесь не хватает?

newData <- data[data$IndID != RemoveInds,] 
newData <- subset[data, data$IndID != RemoveInds] 

Заранее спасибо.

+2

Вам нужно '% in%' –

+0

Спасибо! очень полезно. Опубликовать как ответ ... –

+0

Вы также можете использовать 'grepl' (хотя в этом случае его немного неуклюжие)' data [! Grepl (paste (RemoveInds, collapse = "|"), data $ IndID),] ' –

ответ

2

Это делает то, что вы ищете?

newdata<- data[!data$IndID %in% RemoveInds, ] 
Смежные вопросы