【发布时间】:2016-11-02 07:57:10
【问题描述】:
我有一个庞大的数据集(超过 200 万行,包含 100 多个变量;下面是一个小样本)。对于每个subj_trial 组,我想在message 中找到包含在“.wav”中的每个唯一变量的第一次出现。它应该只是包含而不是结尾(即 *.wav),因为某些行在 message 字段中有一堆信息(在示例中未显示,抱歉)。
输出只有这三列的 data.frame 是可以的,但这不是必需的。稍后我需要使用timestamp 列进行分析。
我发现了这个问题:Extract rows for the first occurrence of a variable in a data frame,但在我的一生中,我无法用这个例子来适应我的情况。
以下是一些示例数据:
subj_trial message timestamp
1 1_1 message 459 755616
2 1_1 . 755618
3 1_1 test1.wav 755662
4 1_1 . 765712
5 1_1 test1.wav 767918
6 1_2 . 769342
7 1_2 test2.wav 775662
8 1_2 . 786412
9 1_2 test2.wav 797460
10 1_2 . 807626
11 1_3 test3.wav 817794
12 1_3 warning 11 827960
13 2_1 message 481 817313
14 2_1 test1.wav 817347
15 2_1 . 834959
16 2_1 test1.wav 855007
17 2_1 . 880107
18 2_2 . 895723
19 2_2 test2.wav 922671
20 2_2 . 958003
21 2_2 test2.wav 994385
22 2_3 . 1016217
23 2_3 test3.wav 1036899
24 2_3 . 1047331
25 2_3 test3.wav 1142527
这是我正在处理的一个非常小的例子,在这里。对于每个subj_trial 组,大概有 3000 行,并且有超过 700 个组。
这是我想要的一个例子。
subj_trial message timestamp
1 1_1 test1.wav 755662
2 1_2 test2.wav 775662
3 1_3 test3.wav 817794
4 2_1 test1.wav 817347
5 2_2 test2.wav 922671
6 2_3 test3.wav 1036899
我已经弄清楚如何通过这样做在整个数据集上获取 message 中的唯一值:
unique_message <- df[match(unique(df$message), df$message),]
但我不知道如何按组进行操作。我也尝试在dplyr 包中使用group_by,但也无法使其正常工作。朋友们,请怜悯并给我指路。谢谢!
【问题讨论】:
-
@SerbanTanasa 这样做没有帮助,因为这将是一组的 25 行,主要是“。”在
message字段中,并且只有一个 .wav 值的实例。我提供的例子很好。 -
@SerbanTanasa 好的,我知道您关心的是格式而不是内容。谢谢你告诉我。
标签: r