作者bedroom0204 (khkh)
看板R_Language
标题[问题] 判断row的重复个数并做某个计算
时间Fri Jul 1 00:55:29 2016
[问题类型]:
程式谘询(我想用R 做某件事情,但是我不知道要怎麽用R 写出来)
[软体熟悉度]:
请把以下不需要的部份删除
新手(没写过程式,R 是我的第一次)
[问题叙述]:
我有个眼动数据格式缩小後如下:
time type
200 1
201 1
206 1
211 1
216 1
220 1
222 1
774 2
776 2
780 2
784 2
787 2
814 6
819 6
820 6
824 6
829 6
1153 11
1160 11
1160 11
1163 11
1.
我想要搜寻各type值,各持续几秒,
例如:此范例,type=1时,经过20秒;type=2时,经过13秒......
可以利用甚麽函数或写法呢?
2.
在得到上述持续时间後,
可以怎麽把type=1,2,6,11取出,
并乘上各自的持续时间?
例如:type1=1*20、type2=2*13、type6=6*15...
这些type数字是会持续累积的,
time也会持续增加,但每列增加的幅度不一样。
谢谢回答!
[关键字]:
row
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 115.43.120.177
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1467305732.A.354.html
※ 编辑: bedroom0204 (115.43.120.177), 07/01/2016 00:56:21
1F:推 cywhale: DT[,dif:=diff(range(time)),by="type"][,z:=dif*type] 07/01 01:30
谢谢您回答,
但结果出现error:
Error in `[.tbl_df`(DT, , `:=`(dif, diff(range(time))), :
unused argument (by = "type")
是跟我使用dplyr有关吗?
※ 编辑: bedroom0204 (115.43.120.177), 07/01/2016 01:41:08
2F:→ cywhale: sorry I forgot to say I used library(data.table) 07/01 01:49
3F:→ cywhale: and you can transfer by DT <- data.table(your_df) 07/01 01:51
4F:推 clansoda: 我用你提到的dplyr写了一个可以用的,你可以试试看 07/01 09:52
5F:→ clansoda: dat %>% group_by(type) %>% summarise(timediff=max(ti 07/01 09:52
6F:→ clansoda: me)-min(time)) %>% mutate(answer=timediff*type) 07/01 09:53
谢谢您的回答,这是可行的,太厉害了...
但是我不太懂%>%是甚麽意思,怎麽会想到这样用呀,碍於特殊符号,GOOGLE也查不到。
※ 编辑: bedroom0204 (113.196.44.28), 07/05/2016 12:14:40
7F:→ celestialgod: 可以找我文章的签名档,或是板上搜寻magrittr 07/05 18:56