2017-08-28 78 views
-2
Part1 = subset(mvt, mvt$Year == 2007,2008,2009,2010,2011,2012) 

打印part1给我null?我可以知道这条线有什么问题吗?我是一名初学者。 tnx耐心。无法在R中创建子集

回答

2

您需要使用%in%运算符。

x <- data.frame(letters = sample(letters), 
       ints = 1:length(letters) 
) 

> subset(x, subset = x$letters %in% c("r", "o", "m", "a", "n")) 
    letters ints 
4  r 4 
6  m 6 
9  n 9 
10  a 10 
12  o 12 
+6

你不需要'x $' – akrun

-2
> Part1 <- subset(mvt, mvt$Year %in% c(2007:2012)) 
> Part1 
    Year Value 
1 2007  1 
2 2008  2 
3 2009  3 
4 2010  4 
5 2011  5 
6 2012  6 
+0

@NegativeVoters - 为什么这个被投票否定?它提供了所需的输出... – Sagar

+0

虽然它确实解决了问题,但downvote可能有两个原因:此解决方案已在发布之前发布,并且您没有对您的代码行给出任何解释(甚至没有使用的示例数据)来帮助OP。 – Cath

+0

这只是发布答案的时机。我也在编辑这个问题(这将是同行评议)。对反对票没有任何意义。重复的答案可以在评论中标记为重复。 – Sagar

-3

我会建议使用%in%操作,但你也可以使用or操作。

Year <- c(2008, 2008, 2009, 2010, 2012, 2012, 2015) 
Letter <- sample(letters)[1:length(Year)] 
mvt <- data.frame(Year, Letter) 
> mvt 
    Year Letter 
1 2008  z 
2 2008  a 
3 2009  c 
4 2010  l 
5 2012  k 
6 2012  w 
7 2015  r 

subset(mvt, mvt$Year == 2008 | mvt$Year == 2012) 
> subset(mvt, mvt$Year == 2008 | mvt$Year == 2012) 
    Year Letter 
1 2008  z 
2 2008  a 
5 2012  k 
6 2012  w 
+0

这是为什么被拒绝投票? – user108363