作者helixc (@_2;)
看板R_Language
标题[问题] 找出重复的资料组
时间Thu Jul 2 21:48:10 2015
[问题类型]:
程式谘询(我想用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
问题在於这些资料当初是在两个不同介面蒐集的,
同一旅次的同一批资料有可能会被输入两次,
会出现在整个资料的不同地方,请问这要怎麽抓出来呢?
感谢各位
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 223.138.68.144
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1435844892.A.947.html
※ 编辑: helixc (223.138.68.144), 07/02/2015 21:50:55
1F:推 Edster: a=c(1,1,1);b=c(1,3,1);d = data.frame(a,b);duplicated(d 07/02 22:00
2F:→ Edster: duplicated(d) 07/02 22:00
3F:→ celestialgod: 不太懂问题是什麽?可以举例什麽叫做不同地方 07/02 22:01
4F:→ celestialgod: 楼上那行跟distinct一样效果喔~~ 07/02 22:01
5F:→ Edster: d = d[!duplicated(d),] 07/02 22:02
6F:推 Edster: 请问c大, distinct是哪个library? 惭愧平常不太查library. 07/02 22:07
7F:→ celestialgod: dplyr的 就是unique rows... 07/02 22:46
8F:→ celestialgod: 我也很少查,所以我有先查distinct是什麽才问原PO 07/02 22:47
9F:→ gsuper: distinct 是 mysql 的语法 与unique类似 07/02 23:13
10F:→ gsuper: which(d %in% duplicated(d)) 应该就差不多了 07/02 23:14
11F:→ gsuper: which(d %in% d[duplicated(d)]) 07/02 23:22