Im пытается использовать пакет reshape2 для изменения моих данных, но я получаю сообщение об ошибке. Мои данные, как показано ниже:Измените данные с разделителем, используя reshape2
mydata<-read.csv("Data.csv")
head(mydata)
Date A.Price B.Price C.Price A.Rating B.Rating C.Rating
31/01/2012 1.273 3.11 1.215 5 4 3
29/02/2012 1.393 3.19 1.205 10 8 7
30/03/2012 1.367 3.15 1.076 10.5 9.5 7.5
Моя цель состоит в том, чтобы получить его перепрофилирование на это:
Date ID Price Rating
31/01/2012 A 1.273 5
31/01/2012 B 3.11 4
31/01/2012 C 1.215 3
29/02/2012 A 1.393 10
29/02/2012 B 3.19 8
....
Пока мой код:
mydata$ID <- sequence(nrow(mydata))
out<-melt(reshape(mydata, direction = "long",
timevar = "Group", varying = names(mydata), sep = "."),
id.vars = c("ID", "Price","Rating"))
но им получаю ошибку:
Error in reshapeLong(data, idvar = idvar, timevar = timevar, varying = varying, : 'varying' arguments must be the same length
Любые идеи о том, как решить эту проблему ?
Большое спасибо akrun! но есть ли способ сделать это, чтобы я мог использовать «.». как разделитель вместо того, чтобы печатать имена столбцов? –
@richard_jokes Поскольку оба префикса и суффикса различаются друг от друга, одним из способов было бы указать столбцы в 'variableing' как' list' в вашей перестановке. то есть 'reshape (mydata, direction = 'long', variableing = list (2: 4, 5: 7))' – akrun
@richard_jokes Я добавил еще несколько вариантов. Надеюсь, поможет. – akrun