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