【发布时间】:2020-05-19 19:38:17
【问题描述】:
我有一个巨大的数据框,其中包含对数百个人的多个变量的许多时间相关观察。每个人在ID 列中都有一个唯一编号。我将使用下面模拟的数据,其结构类似于我的数据来提出我的问题:
set.seed(123)
dat <- data.frame(ID = rep(letters[1:10], each = 10),
time = rep(c(1:10), times = 10),
var1 = rnorm(100))
请注意,在真实数据中,每个ID 的实际观察次数是不同的。
假设有几个人(例如,IDs:b、e 和 g)我需要对其进行观察并完全“翻转”或“颠倒”顺序,并且仍然保留每个人的数据time。我的意思是(以个人 b 为例)个人 b 的数据帧中的第一个观察结果将是“时间间隔”10 处的数据,而不是“时间间隔”1 处的数据。换句话说,数据看起来像这样:
ID time Var1
a 1
a 2
… …
a 10
b 10
b 9
b 8
… …
b 1
c 1
c 2
c 3
c 4
ect...
执行此操作并保持其在数据框中的位置的最安全方法是什么(即,b 位于 a 和 c 等之间)?
【问题讨论】:
-
可以澄清您是否尝试重新排序数据行,同时保持
time和Var1之间的关系或更改数据以使time到Var1关系为不一样? -
你好我想保留
time和Var1之间的关系 -
@Ryan 我想应该保持顺序吧?