2011-10-04 85 views
2

我有一個數據框(稱爲「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) 

但它不起作用。

有沒有人有一個想法如何擺脫所有這些年的所有單一條件?

回答

2

我相信%in%運算符是你在找什麼:

data.set.y.p1 <- subset(data.set.y, substring(data.set.y$Entity, 13,16) %in% years)