Удаление определенной категории из фрейма данных в R - PullRequest
0 голосов
/ 28 сентября 2010

У меня есть один столбец в фрейме данных в R, который выглядит примерно так:

blue
green
blue
yellow
black
blue
green

Как удалить все строки, которые указывают синий ?Помните, что я не хочу, чтобы в этой строке было представлено значение NULL: я хочу удалить всю строку.

Спасибо:)

Ответы [ 4 ]

5 голосов
/ 28 сентября 2010

Также будьте осторожны с разницей между факторной переменной и символьным вектором .

Факторы сохраняют все исходные уровни по умолчанию, если вы не переназначите измененный вектор как новый фактор или не воспользуетесь одной из функций восстановления.

3 голосов
/ 28 сентября 2010

Если все эти квадратные скобки, запятые и знаки доллара сбивают вас с толку, то почему бы не попробовать «подмножество»:

> d=data.frame(a=c("Red", "Blue", "Red"), b=1:3)
> subset(d,a!="Blue")
    a b
1 Red 1
3 Red 3
3 голосов
/ 28 сентября 2010

А как же

> df1 = data.frame(a=c("Red", "Blue", "Red"), b=1:3)
> df1[df1$a!= "Blue",]
    a b
1 Red 1
3 Red 3
0 голосов
/ 28 сентября 2010
> Data[Data!="blue"]
[1] "green"  "yellow" "black"  "green"

или

> Data[which(Data!="blue",TRUE)]
[1] "green"  "yellow" "black"  "green"

Изменить, чтобы ответить на комментарий Джорис (это работает для 1-столбцов data.frames):

> str(Data)
'data.frame':   7 obs. of  1 variable:
 $ V1: Factor w/ 4 levels "black","blue",..: 2 3 2 4 1 2 3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...