【发布时间】:2019-04-21 03:45:02
【问题描述】:
我有一个数据集,其中包含多个嵌套在个体中的观察结果。此示例数据集包括 id 列和星期几(dayweek,1-7)。我从每个人那里得到了 3 天的观察结果。因此,一个人可能只提交了周日/周三/周四(1、4、5)的报告,而另一个人可能已经提交了周日/周一/周二(1、2、3)的报告,如下例所示:
df <- data.frame(
id = c(rep(1:2, each = 6),2),
dayweek = c(rep(c(1, 4, 5), each = 2),rep(c(1, 2, 3), each = 2), 3)
)
我想设置一个列来标记每个人的第一天、第二天和第三天,如下所示:
df2 <- data.frame(
id = c(rep(1:2, each = 6),2),
dayweek = c(rep(c(1, 4, 5), each = 2),rep(c(1, 2, 3), each = 2), 3),
daynum = c(rep(1:3, each = 2, times = 2), 3)
)
我尝试过使用
df %>% group_indices(id, dayweek)
但这会为每个单独的日期组合生成一个新的 ID。有什么好的方法可以做到这一点?
提前致谢!
【问题讨论】:
-
如果这几天是周五、周六、周日怎么办:那么你会有 6、7、1,但 6 是第一天,1 是第三天,对吧?这些行是否已经按日期顺序排列,因此 id 的第一行会得到 daynum = 1?
-
嗨,正确:在这种情况下,我想重新编码 6 到 1、7 到 2 和 1 到 3。是的,行是按顺序排列的,但是每个行的观察次数不同个人和每一天。所以他们可能有 4 个 Sat 的观测值,2 个 Sun 的观测值,等等。
标签: r