Re: [问题] dplyr之filter同时多个值之应用

楼主: celestialgod (天)   2015-12-24 01:05:59
※ 引述《girl5566 (5566520)》之铭言:
: 文章分类提示:
: - 问题: 当你想要问问题时,请使用这个类别
: [问题类型]:
: 程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
: [软件熟悉度]:
: 新手(没写过程式,R 是我的第一次)
: [问题叙述]:
: 不太懂为何temp <- data %>% filter(NUMBER == c(0,1))找出来的数量会是错的
: 但这样做的确是有捞出含有0或1的资料 但是好像会不完全!?
: 想询问temp <- data %>% filter(NUMBER == c(0,1)) 所找出来的会是什么?
R会自动补齐长度,所以
如果NUMBER是1,2,3,4,5,6
就是在计算 c(1,2,3,4,5,6) == c(0,1,0,1,0,1)
你如果是要0或1 应该是用 data %>% filter(NUMBER %in% c(0,1)) 较为合适
去?'%in%'看看吧
不然dplyr可以用 data %>% filter(NUMBER==0 | NUMBER==1)
: [程式范例]:
: > temp <- data %>% filter(NUMBER == 0)
: > print(nrow(temp))
: [1] 939
: > temp <- data %>% filter(NUMBER == 1)
: > print(nrow(temp))
: [1] 315
: > temp <- data %>% filter(NUMBER == 0 | NUMBER == 1)
: > print(nrow(temp))
: [1] 1254
: > temp <- data %>% filter(NUMBER == c(0,1))
: > print(nrow(temp))
: [1] 626
: [环境叙述]:
: R 3.2.2,Win7 64bit
: [关键字]:
: dplyr,filter
作者: girl5566 (5566520)   2015-12-24 22:51:00
感谢解说

Links booklink

Contact Us: admin [ a t ] ucptt.com