我有一个数据框,其中每一行是一个观察,最后一列被称为“重叠”,显示来自不同数据集的观察,这些观察与这个数据框中的观察同时发生。
这些结果来自于我之前提出的一个问题,即如何从数据框中获取重叠数据。
所有这些重叠的观察结果都被连接到一个单独的列中,如下所示:
[1] "1_hands:N:1.768,1_hands:N:3.343,2_body:N:14.272"
[2] "1_hands:CH2:4.021,2_body:N:14.272"
[3] "1_hands:N:1.862,2_body:N:4.825"
[4] "1_hands:CH2:1.978,2_body:N:4.825,2_body:CH1:1.075"
[5] "1_hands:CH1:0.821,1_hands:N:1.417,1_hands:N:2.213,2_body:N:5.485"
[6] "1_hands:CH1:3.557,2_body:N:3.519"
[7] "1_hands:CH1:3.557,1_hands:N:1.249,2_body:N:3.519"
[8] "1_hands:CH1:4.896,2_body:CH1:3.308"
[9] "1_hands:CH1:4.896,2_body:CH1:3.308,2_body:N:1.67"
[10] "1_hands:CH1:4.896,2_body:N:1.67,2_body:CH1:5.288"
每个观测由“,"分隔。“:“分隔观测的不同元素。例如观测:
1_双手:N:1.768
会被这样划分:
1手=类别
N =数值
1.768 =持续时间
我想做的是,得到每个类别和值的持续时间总和,本质上,我想把每个“1_hands:N:X”的持续时间加起来。
一种方法是使用stringr包,我可以使用各种str_split函数,通过分隔符“,”和“:“连续分解观察结果,最终得到一列特定类别和值的持续时间值,然后我可以得到其总和。
但是,它的效率非常低,而且我必须对多个数据集执行此操作。
有没有更简单的方法来做这件事?有没有可能循环通过这些数据,只是得到我需要的总和,而不把它分解成多组 Dataframe ?
2条答案
按热度按时间1u4esq0p1#
不确定您要达到的确切效率,但此解决方案应该相当快
zujrkrfu2#
请检查以下代码
数据
编号
创建于2023年1月27日,使用reprex v2.0.2
输出