2013-04-27 52 views
1

我有一个数据集DATA,其中包含许多变量。 DATA有一个列表模式,它的类是一个data.frame。 我关心的变量是AGE.MONTHS和LOCATION。我需要将DATA子集合到另一个名为SUB的集合中,并且我希望SUB仅包含AGE.MONTHS < = 2和LOCATION =“Area A”的观察值。 AGE.MONTHS有一个数字模式和类。 LOCATION有一个数字模式,其类是一个因素。我曾尝试以下,使用R中的多个变量对数据进行子集化

SUB<-which((DATA$AGE.MONTHS <= 2)& (DATA$LOCATION=="Area A")) 

但这只是告诉我,它的观测条件都成立了真,我需要的是所有这些条件都成立的数据的一个子集。 感谢您的帮助。

回答

2

使用subset功能。

subset(DATA, AGE.MONTHS <= 2 & LOCATION == "Area A") 
+0

哈,谢谢!我实际上有点尴尬,我没有亲自来过这个! – 2013-04-27 00:42:33

+0

没什么好尴尬的:)。 R的学习曲线比一些其他语言的曲线要快,但是一旦你学会了,它就非常强大。 – 2013-04-27 00:43:49

+0

我尝试了子集,但是使用这个代码:SUB <-subset(DATA,subset = AGE> MONTHS <= 2和subset = LOCATION ==“Area A”)。[这是直接从R manual,BTW] When它不起作用,我只是认为这不是正确的做法。 – 2013-04-27 00:43:54

4

如果这是在程序中,您最好使用[子集。例如,在这里看到:Why is `[` better than `subset`?

要与[集,你想这样:

DATA[with(DATA, AGE.MONTHS <= 2 & LOCATION == "Area A"), ] 
相关问题