Фильтровать определенные строки - PullRequest
2 голосов
/ 05 октября 2011

У меня есть фрейм данных (который называется «data.set.y»).И я хотел бы получить подмножество этого фрейма данных (который я называю data.frame.y.p1).Это подмножество содержит все строки, которые содержат строку 1990 или 1991, или 1992, или 1993, или 1994, или 1995, или 1996, или 1997, или 1998, или 1999 в столбце «Сущность».

data.set.y.p1 <- subset(data.set.y, substring(data.set.y$Entity, 13,16) == 1990 | substring(data.set.y$Entity, 13,16) == 1991 |
                                    substring(data.set.y$Entity, 13,16) == 1992 | substring(data.set.y$Entity, 13,16) == 1993 |
                                    substring(data.set.y$Entity, 13,16) == 1994 | substring(data.set.y$Entity, 13,16) == 1995 |
                                    substring(data.set.y$Entity, 13,16) == 1996 | substring(data.set.y$Entity, 13,16) == 1997 |
                                    substring(data.set.y$Entity, 13,16) == 1998 | substring(data.set.y$Entity, 13,16) == 1999)

Теперь я хотел бы заменить этот длинный код чем-то более элегантным.Я уже пробовал следующее:

years <- c(1990:1999)
data.set.y.p1 <- subset(data.set.y, substring(data.set.y$Entity, 13,16) == years)

Но это не работает.

У кого-нибудь есть идеи, как избавиться от всех этих одиночных состояний за все годы?

1 Ответ

3 голосов
/ 05 октября 2011

Я считаю, что вы ищете оператор %in%:

data.set.y.p1 <- subset(data.set.y, substring(data.set.y$Entity, 13,16) %in% years)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...