R Изменить данные дважды - PullRequest
0 голосов
/ 29 мая 2018

У меня проблемы с корректным изменением формы набора данных: у меня есть несколько IV, а затем 60 столбцов, содержащих данные повторных измерений (10 раз) из 6 блоков.Следовательно, я хочу изменить данные, чтобы создать одну зависимую переменную и дополнительную новую переменную времени (1-10) и новую переменную, содержащую информацию блока (1-6).

Я уже дважды пытался изменить форму, но потерпел неудачу.Данные выглядят так:

 sbj  someIV    OfferCero.1   OfferCero.2 OfferCero.3 .... OfferFive.1 OfferFive.10 
   1   10         6               1           4                 1           4
   2   12         5               7           1                 2           3
   3   20         7               2           8                 5           2
   4   22         8               2           4                 4           1

и должны выглядеть следующим образом:

sbj  someIV    DV     Timepoint     Offersize
 1   10         6         1             0         
 1   10         1         2             0
 1   10         4         3             0
 1   10         5         4             0

Мой код пока:

First Reshape:

dl <- reshape(df, varying=list(CeroCent= c(32:41), OneCent= c(42:51), TwoCent= c(52:61), ThreeCent= c(62:71),FourCent= c(72:81), FiveCent= c(82:91) ), 
        v.names=c("CeroCent", "OneCent", "TwoCent", "ThreeCent", "FourCent", "FiveCent"),           
        direction="long",  
        times=1:10,
        timevar="Timepoint")

Second One: 
dl2 <- reshape(dl, direction="long", 
               varying= c(33:38),
               v.names="Emotion",
               times = 1:6, timevar="Offer")

И некоторые примеры данных (только два ")блоки "из 5 повторений):

example <- data.frame(
  Sub = c(1:5),
  IV1 = sample(1:5),
  IV2 = sample(1:5),
  CeroCent.1 = sample(1:5),
  CeroCent.2 = sample(1:5),
  CeroCent.3 = sample(1:5),
  CeroCent.4 = sample(1:5),
  CeroCent.5 = sample(1:5),
  FiveCent.1 = sample(1:5),
  FiveCent.2 = sample(1:5),
  FiveCent.3 = sample(1:5),
  FiveCent.4 = sample(1:5),
  FiveCent.5 = sample(1:5)
)

Спасибо!

1 Ответ

0 голосов
/ 29 мая 2018

Я не уверен на 100%, что понимаю ваш вопрос, но думаю, это то, что вы ищете.Дайте мне знать, если это не так.Я не перекодировал уровни факторов в столбце «Timepoint»;Я оставлю это как упражнение для вас

library(tidyr)
library(magrittr)
mydata <- gather(example, key = "temp", value = "DV", -Sub, -IV1, 
                 -IV2) %>% 
  separate(temp, c("Timepont", "Offersize"))

Дает вывод

  Sub IV1 IV2 Timepont Offersize DV
   1   4   3 CeroCent         1  4
   2   3   1 CeroCent         1  1
   3   1   2 CeroCent         1  2
   4   5   4 CeroCent         1  5
   5   2   5 CeroCent         1  3
   1   4   3 CeroCent         2  3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...