我想按多列对data.frame进行排序.例如,对于下面的data.frame,我想按列z(降序)然后按列b(升序)排序:
dd <- data.frame(b = factor(c("Hi", "Med", "Hi", "Low"),
levels = c("Low", "Med", "Hi"), ordered = TRUE),
x = c("A", "D", "A", "C"), y = c(8, 3, 9, 9),
z = c(1, 1, 1, 2))
dd
b x y z
1 Hi A 8 1
2 Med D 3 1
3 Hi A 9 1
4 Low C 9 2
Run Code Online (Sandbox Code Playgroud) 我有一个巨大的数据集(超过 200 万行,超过 100 个变量;下面是一个小样本)。对于每个subj_trial组,我想在 .wav 中找到包含在“.wav”中的每个唯一变量的第一次出现message。它应该只是包含,而不是结尾(即 *.wav),因为某些行在message字段中包含一堆信息(示例中未显示,抱歉)。
输出只有这三列的 data.frame 是可以的,但这不是必需的。稍后我将需要使用该timestamp列进行分析。
我发现了这个问题:为数据框中第一次出现变量提取行,但对于我的生活,我无法使用该示例来适合我的。
以下是一些示例数据:
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 …Run Code Online (Sandbox Code Playgroud) 例如,
vec <- c(4,4,4,3,3,3,5,4,5,4,3,3,56)
(pos <- ?????????)
Run Code Online (Sandbox Code Playgroud)
我要回报
1 4 7 13
Run Code Online (Sandbox Code Playgroud) 我有一个数据帧,如:
ID DATE N Price
1 2013-02-04 3 29.99
1 2013-03-18 1 9.99
1 2013-04-13 2 19.99
2 2013-02-18 1 18.99
2 2013-05-11 2 19.99
Run Code Online (Sandbox Code Playgroud)
这个答案提取数据框中第一次出现变量的行告诉我们如何提取目标值的第一次出现...但是我需要所有但是第一次出现,也就是:
ID DATE N Price
1 2013-03-18 1 9.99
1 2013-04-13 2 19.99
2 2013-05-11 2 19.99
Run Code Online (Sandbox Code Playgroud)
建议的方法是什么?
我最初的本能是使用链接答案中概述的方法,构建一个"第一"子集,然后说,"从原始数据框,给我除了这些值之外的所有东西"......但这似乎可能更复杂.
我有一张桌子:
id time
1 1
1 2
1 5
2 3
2 2
2 7
3 8
3 3
3 14
Run Code Online (Sandbox Code Playgroud)
我想将其转换为:
id first last
1 1 5
2 3 7
3 8 14
Run Code Online (Sandbox Code Playgroud)
请帮忙!