[問題] 找出重複的資料組

作者: helixc (@_2;)   2015-07-02 21:48:10
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
新手(沒寫過程式,R 是我的第一次) + 入門(剛開始用R對語法不熟悉)
[問題敘述
資料格式如下,約有一百萬筆以上
有日期(date)、物種編號(bird_id)、物種名稱(bird_name)、數量(num
地點(place)與回報者(reporter),資料叫做"bird"
每一個旅次會有好幾筆物種與數量的資料,
現在想要以旅次為單位進行分析。
資料大概長這樣:
>head(bird)
date bird_id bird_name num place reporter
1 2001-01-01 201 sp1 3 金門 John
2 2001-01-01 202 sp2 2 金門 John
3 2001-01-01 205 sp3 8 金門 John
4 2001-01-01 3507 sp4 10 金門 John
5 2001-01-01 4104 sp5 1 金門 John
6 2001-01-01 4105 sp6 1 金門 John
由於一個人一天只會去一個地方一次,
目前已經想到可以用date, place, reporter做組合篩選出同一批旅次的調查資料
程式碼如下:
>library('dplyr')
>birdtrip <- select(bird, date, place, reporter)
>birdtrip <- distinct(birdtrip, date, place, reporter)
理論上把旅次(birdtrip)編碼後就可以再對應到原來的資料當中,
但這部分還要想想怎麼寫,慢慢想應該想得出來XD
問題在於這些資料當初是在兩個不同介面蒐集的,
同一旅次的同一批資料有可能會被輸入兩次,
會出現在整個資料的不同地方,請問這要怎麼抓出來呢?
感謝各位
作者: Edster (Edster)   2015-07-02 22:00:00
a=c(1,1,1);b=c(1,3,1);d = data.frame(a,b);duplicated(dduplicated(d)
作者: celestialgod (天)   2015-07-02 22:01:00
不太懂問題是什麼?可以舉例什麼叫做不同地方樓上那行跟distinct一樣效果喔~~
作者: Edster (Edster)   2015-07-02 22:02:00
d = d[!duplicated(d),]請問c大, distinct是哪個library? 慚愧平常不太查library.
作者: celestialgod (天)   2015-07-02 22:46:00
dplyr的 就是unique rows...我也很少查,所以我有先查distinct是什麼才問原PO
作者: gsuper (Logit(odds))   2015-07-02 23:13:00
distinct 是 mysql 的語法 與unique類似which(d %in% duplicated(d)) 應該就差不多了which(d %in% d[duplicated(d)])

Links booklink

Contact Us: admin [ a t ] ucptt.com