[问题] 多个子集合选取

楼主: hanglong (小焕)   2016-01-26 12:00:25
[问题类型]:
程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
[软件熟悉度]:
新手(没写过程式,R 是我的第一次)
[问题叙述]:
处理比较大量的资料,
想要选取某个类别当中的几个Levels作为子集合,
但是只会一个一个将不要的删除,
不知道有没有一个可以简单化的程式?
[程式范例]:
以下为简单的例子:
假设我有个Data Sheet(档案名称为Score):
班级 座号 分数
A 1 50
A 2 60
A 3 70
B 1 80
B 2 90
B 3 100
C 1 90
C 2 80
C 3 70
D 1 60
D 2 50
D 3 60
若我想要撷取A班的成绩:
Score[Score$班级 == "A",]
若我想要撷取C班的成绩:
Score[Score$班级 == "C",]
就可以很容易地撷取出来。
但若我想要同时撷取A & C班的成绩,
希望出来的结果:
班级 座号 分数
A 1 50
A 2 60
A 3 70
C 1 90
C 2 80
C 3 70
Score[Score$班级 == "A" & Score$班级 == "C",]
上面的程式就不会跑出我想要的结果
我就只能将不必要的一一删除:
Score[Score$班级 != "B",]
Score[Score$班级 != "D",]
同时跑上面两行程式,才会出现我要的结果,
但是当Levels很多的时候,就会变得很麻烦,
不知道有没有比较简单的程式,可以达成这样的结果?
[环境叙述]:
R 3.1.2
[关键字]:
子集合选取
作者: celestialgod (天)   2016-01-26 14:30:00
Score[Score$班级 == "A" | Score$班级 == "C",]
楼主: hanglong (小焕)   2016-01-26 14:38:00
谢谢 我试试看
作者: andrew43 (讨厌有好心推文后删文者)   2016-01-28 02:46:00
subset()也有一样功能,也容易阅读。
作者: clickhere (It's time to go home.)   2016-01-28 08:54:00
Score[Score$班级 %in% c("A", "C"),]

Links booklink

Contact Us: admin [ a t ] ucptt.com