作者hanglong (小焕)
看板R_Language
标题[问题] 多个子集合选取
时间Tue Jan 26 12:00:25 2016
[问题类型]:
程式谘询(我想用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
[关键字]:
子集合选取
--
如果将字母A到Z分别编上1到26的分数(A=1,B=2...,Z=26)
你的知识(KNOWLEDGE)得到96分(11+14+15+23+12+5+4+7+5=96)
你的努力(HARDWORK)也只得到98分(8+1+18+4+23+15+18+11=98)
你的态度(ATTITUDE)才是左右你生命的全部(1+20+20+9+20+21+4+5=100)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 125.227.245.73
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1453780847.A.8F6.html
1F:→ celestialgod: Score[Score$班级 == "A" | Score$班级 == "C",] 01/26 14:30
2F:→ hanglong: 谢谢 我试试看 01/26 14:38
3F:→ andrew43: subset()也有一样功能,也容易阅读。 01/28 02:46
4F:→ clickhere: Score[Score$班级 %in% c("A", "C"),] 01/28 08:54