我對R很新,似乎無法弄清楚如何處理似乎是一個相對簡單的問題。我想根據'TRIAL_INDEX'對'DURATION'列的行進行求和,但是隻有那些'X_POSITION'值增加的第一行,我只想在X增加的試驗中對第一輪求和 The一個簡化的數據幀的第一行:R:從列A中總結行直到列B中的條件值
TRIAL_INDEX DURATION X_POSITION
1 1 204 314.5
2 1 172 471.6
3 1 186 570.4
4 1 670 539.5
5 1 186 503.6
6 2 134 306.8
7 2 182 503.3
8 2 806 555.7
9 2 323 490.0
因此,對於TRIAL_INDEX 1中,僅持續時間的前三個值應該被添加(204 + 172 + 186),因爲這是其中X具有最高的值爲止( 。通過行數據框行)會
所需的輸出應該是這個樣子:
TRIAL_INDEX DURATION X_POSITION FIRST_PASS_TIME
1 1 204 314.5 562
2 1 172 471.6 562
3 1 186 570.4 562
4 1 670 539.5 562
5 1 186 503.6 562
6 2 134 306.8 1122
7 2 182 503.3 1122
8 2 806 555.7 1122
9 2 323 490.0 1122
我試圖使用dplyr來生成一個新的數據幀,它可以與我的原始數據幀合併。 但是,代碼無法正常工作,而且我不確定如何確保只添加每個試驗的第一行,這些行的X_POSITION值越來越大。
FirstPassRT = dat %>%
group_by(TRIAL_INDEX) %>%
filter(dplyr::lag(dat$X_POSITION,1) > dat$X_POSITION) %>%
summarise(FIRST_PASS_TIME=sum(DURATION))
任何幫助和建議,非常感謝!
你'X_POSITION'不是數字,所以R怎麼知道它是否增加?我猜想它使用底層整數表示(如果這些因素)並拋出警告。例如,請參閱[這裏](http://stackoverflow.com/questions/15236440/as-numeric-with-comma-decimal-separators)。 –
感謝大衛,好點。我將X_POSITION值更改爲數字值,這是初學者在讀取數據時的錯誤。仍然,似乎沒有得到我想要的輸出... – Saskia