我对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