Re: [問題] 找出從A到B的平均值

看板R_Language作者時間9年前 (2016/10/12 07:27), 9年前編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
試試data.table foverlaps library(data.table) library(magrittr) gt <- fread('gyro start 6.9 0 4.7 50.69 1.5 55.77 -2.3 63.44 -4.3 90 NA 100.11 NA 124.1 -1.3 150.22 1.5 160') %>% .[,end:=start+0.01] #because you only permit gt$start < ft$end (Not <=), so I add 0.01 ft <- fread('start end fixation_x fixation_y 50.69 100.11 1020 590 124.1 160 1123 690 200 275 1700 300 500 551.25 850 475 700 890.2 697 785') %>% setkey(start,end) gx <- gt[,fid:=foverlaps(gt, ft, type="within", which=TRUE)$yid] %>% .[-which(is.na(fid)), mean(gyro,na.rm=T), by=.(fid)] ft[,fid:=.I] %>% setkey(fid) %>% .[gx, fixation_x*V1] ※ 引述《bedroom0204 (khkh)》之銘言: : [問題類型]: : : 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) : : [軟體熟悉度]: : 新手(沒寫過程式,R 是我的第一次) : [問題敘述]: : 我有兩個的資料檔, : 一個是Fixation的資料檔,一個是gyro的資料檔。 : Fixation的資料檔結構如下: : start end fixation.x fixation.y fixation.x_gyro : 1 50.69 100.11 1020 590 : 2 124.1 160 1123 690 : 3 200 275 1700 300 : 4 500 551.25 850 475 : 5 700 890.2 697 785 : gyro的資料如下: : gyro start : 1 6.9 0 : 2 4.7 50.69 : 3 1.5 55.77 : 4 -2.3 63.44 : 5 -4.3 90 : 6 100.11 : 7 124.1 : 8 -1.3 150.22 : 9 1.5 160 : 由於Fixation的資料是從gyro資料分析的,所以start值必定會有相同。 : 我想要求每個fixation經過幾個gyro值,並將該fixation.x乘上經過的gyro平均值。 : 例如: : (起點終點不一定會有gyro值,所以計算在這時間區間內的gyro值) : 第1個fixation有第2.3.4.5個gyro值; : 第2個fixation有經過第8.9個gyro值。 : 實在是程式新手,麻煩各位給予一些指導,謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.225.168.242 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1476228440.A.4B2.html ※ 編輯: cywhale (36.225.168.242), 10/12/2016 07:29:15

10/12 18:41, , 1F
學到一個好用的函數,感謝
10/12 18:41, 1F
文章代碼(AID): #1N_NLOIo (R_Language)
討論串 (同標題文章)
文章代碼(AID): #1N_NLOIo (R_Language)