0

これは私のデータがどのように見えるかです:

df <- structure(list(`1` = c(1 , 2 , 3 , 4 , 5  ,6 , 7 , 8 , 9, 10 ,11 ,12, 13, 14 ,15 ,16, 17, 18), `2` = structure(c(4L,5L, 2L, 5L, 2L, 3L, 1L, 6L,4L,5L, 2L, 5L, 2L, 3L, 1L, 6L,4L,5L),  .Label=c("a","a","b","b","b","c","c","b","b","b","e","e","f","g","g","g","f","f"),
class="factor"),`3`=c(1,0,1,1,0,1,0,1,1,0,1,0,1,1,0,1,0,0),`4`=c(0,1,0,0,1,0,0,0,0,1,0,1,0,0,0,0,1,1), `5` =c(10,5,20,20,5,0,0,10,10,5,10,5,15,5,5,5,2,2)),
 .Names = c("N", "Condition", "AOI_hit_b", "AOI_hit_f", "Time"), class = "data.frame", 
row.names = c("1", "2", "3", "4", "5", "6", "7", "8", "9","10","11","12","13","14","15","16","17","18"))

Condition bの前にaorがあるかどうかにc応じて、またはがどちらであるかに応じて、 Time を計算したいと思います。そのため、条件内の複数の に対して常に同じ時間を書き込むため、 aの最初のヒットのみが時間に関連します。ddply パッケージで試してみましたが、必要な出力が得られませんでした。私の出力は次のようになります。AOI_hit_b011Condition1

sum of 
Condition Time
b(a)       25
b(c)       10

これは私がこれまでに持っているコードです:

hit_cb = list()
for (i in 1:nrow(df)){
    if (df[i,2] == "b") & (df[i-1,2] == "c") {
        hit_cb[i] = ddply(df,.(AOI_hit_b), summarize, mysum=sum(unique(Time)))
    }
}    
4

0 に答える 0