【发布时间】:2021-10-19 22:37:42
【问题描述】:
我目前有一个名为 all_ext 的 EMG 数据框,我需要从中提取数据。数据框如下所示。
| LHvector | RHvector | trigger | time | group |
|---|---|---|---|---|
| -1.279411e-01 | 0.1422139707 | 1 | 0.0000 | L |
| -8.294112e-02 | 0.1112139707 | 1 | 0.0005 | L |
| -3.794112e-02 | 0.0642139707 | 1 | 0.0010 | L |
| -4.394112e-02 | 0.0422139707 | 1 | 0.0015 | L |
| 2.058879e-03 | -0.014786029 | 1 | 0.2000 | L |
| 7.605888e-02 | 0.023213971 | 2 | 0.0000 | L |
等等(我跳了一点来详细说明)。
有2组(L,R),每组有50个触发器,时间从0s到0.2s。
我想要做的是在所有组和触发器的 RHvector 处于最大值时提取所有 5 个值(LHvector、RHvector、触发器、时间和组)。
到目前为止,我写的是 aggregatedval <- aggregate(x = all_ext$RHvector, by = list(all_ext$group, all_ext$triggers), max),它给了我触发器和组值以及组 1 和 2,以及最大 RHvector 作为我的 x。
| Group.1 | Group.2 | x |
|---|---|---|
| L | 1 | 0.64821397 |
| R | 1 | 0.14332592 |
| L | 2 | 0.66621397 |
| R | 2 | 0.05932592 |
| L | 3 | 0.28721397 |
| R | 3 | 0.05832592 |
但我也想要 RHvector 处于最大值时的时间和 LHvector 值。我试图用
进行后续搜索MaxRHTime <- all_ext$time[all_ext$RHvector == aggregatedval$x]
导致0.0250 0.0095 0.0310 0.0860的奇数时间值
我超级卡住了。我觉得我可以将聚合函数 max 编辑为更有用且特定于 RHvector 的东西,这样我也可以返回超过 1 个值。
请帮忙。
【问题讨论】:
-
欢迎来到 StackOverflow!请阅读有关how to ask a good question 的信息以及如何提供reproducible example。这将使其他人更容易帮助您。
-
使用
dplyr:all_ext %>% group_by(trigger, group) %>%slice(which.max(RHvector)) -
@RonakShak 这行得通!谢谢!