在 R 中将数据拼写为 Long

问题描述 投票:0回答:1

我有咒语数据,其中包括 ID、组指示符和咒语长度。

> d <- data.frame(ID = 1:10, 
+            group = sample(c("a", "b"), 10, replace = T), 
+            spell_length = sample(1:3,10, replace = T))


> head(d)
  ID group spell_length
   1     b            1
   2     a            1
   3     a            3
   4     b            1
   5     a            1
   6     b            2

目标是将数据重塑为具有 4 个变量的长格式:ID、组、时间(从 1 到咒语长度)和指示符 (0,1),该 ID 是否仍然存在于该咒语中(例如,如果pell_length 为 1,ID 不应在时间 3) 中出现。

ID group  time indicator
 1     b     1        1
 1     b     2        0
 1     b     3        0
 2     a     1        1
 2     a     2        0
 2     a     3        0
 3     a     1        1
 3     a     2        1
 3     a     3        1
 
r tidyverse reshape
1个回答
0
投票

您想要像下面这样“重新构建”吗?

d %>%
    reframe(time = 1:3, indicator = +(1:3 <= spell_length), .by = c(ID, group))
© www.soinside.com 2019 - 2024. All rights reserved.