看板 R_Language 關於我們 聯絡資訊
[問題類型]: 程式諮詢(我想用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://www.ptt.cc/bbs/R_Language/M.1467305732.A.354.html ※ 編輯: bedroom0204 (115.43.120.177), 07/01/2016 00:56:21
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
cywhale: sorry I forgot to say I used library(data.table) 07/01 01:49
cywhale: and you can transfer by DT <- data.table(your_df) 07/01 01:51
clansoda: 我用你提到的dplyr寫了一個可以用的,你可以試試看 07/01 09:52
clansoda: dat %>% group_by(type) %>% summarise(timediff=max(ti 07/01 09:52
clansoda: me)-min(time)) %>% mutate(answer=timediff*type) 07/01 09:53
謝謝您的回答,這是可行的,太厲害了... 但是我不太懂%>%是甚麼意思,怎麼會想到這樣用呀,礙於特殊符號,GOOGLE也查不到。 ※ 編輯: bedroom0204 (113.196.44.28), 07/05/2016 12:14:40
celestialgod: 可以找我文章的簽名檔,或是板上搜尋magrittr 07/05 18:56