jimshsu
请教各位先进
如果我有一串数据
Age DL
15 2000
20 3000
99 5000
50 6000
我想要取出DL的值条件限制在向量Age > 20的部份~~
按照一般编程的作法,我要取出向量Age > 20索引值给DL
请问这在R要如何做呢?
感谢!
yihui
呵呵,看你用“先进”的称谓就知道你是哪儿的人了
这个问题很简单,R语言已经非常接近人类自然语言了,尤其是这种indexing问题。
如果数据的对象是x,
> x
Age DL
1 15 2000
2 20 3000
3 99 5000
4 50 6000
那么x[x$Age>20,'DL']就是你想要的了。
jimshsu
感谢~
不过我有个疑问
这式子似乎只能针对单一条件的限制来用
若我的数据有好几个column
Age DL Year
1 15 2000 1999
2 20 3000 2000
3 99 5000 2007
4 50 6000 1988
我想要限制Age>20 还要限制Year >2000的话该怎么做呢?
这在数据库似乎用简单SQL就能提取了~~但在R我就不知道如何筛选了
附带个小问题…我找了官网的文件…一直没看到能提取row或column索引值的函数
例如上面的例子
我如果想得到一个向量是 A是代表Age>20 的索引=> [3,4]
这在一般程序语言是蛮常见的function 不过为何R没有一个函数可以处理呢?(亦或只是我不知道~~XD)
abel
?subset
logical operator
yihui
R有三种indexing方式:数字index(例如行列号)、字符(行列名)或者逻辑值(把TRUE提取出来),你的问题属于第三种。
至于多个条件的组合,也很简单啊,我说了R语言和人的自然语言很接近了,就是& | !等问题啊,比如x[x$Age>20 & x$Year>2000, ]
上面abel说的subset()也是非常有用的函数,你仔细看看帮助吧。
dragonet
应该挺简单的呀
leffgh
[quote]引用第1楼谢益辉于2007-11-29 19:04发表的“”:
呵呵,看你用“先进”的称谓就知道你是哪儿的人了
这个问题很简单,R语言已经非常接近人类自然语言了,尤其是这种indexing问题。
如果数据的对象是x,
.......[/quote]
那,
称呼"先进"是哪里的人啊?
bjt
个人感觉subset transform 和SQL功能一样
yihui
[quote]引用第6楼leffgh于2007-12-10 13:11发表的“”:
那,
称呼"先进"是哪里的人啊?[/quote]
显然是台湾同胞。