我有一个数据框(称为“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)
但它不起作用。
有没有人知道如何摆脱所有这些单一条件?
答案 0 :(得分:3)
我相信%in%
运算符正是您所需要的:
data.set.y.p1 <- subset(data.set.y, substring(data.set.y$Entity, 13,16) %in% years)