Как преобразовать фрейм данных в форме
x y 1 4 2 5 3 6
в
value group 1 x 2 x 3 x 4 y 5 y 6 y
для функции, которая ожидает сгруппированные данные?
Взгляните на stack:
stack
> dat <- data.frame(x = 1:3,y = 4:6) > dat x y 1 1 4 2 2 5 3 3 6 > stack(dat) values ind 1 1 x 2 2 x 3 3 x 4 4 y 5 5 y 6 6 y
Полагаю, мне следует добавить ответ "любитель", который будет melt из пакета plyr .
melt
Я думаю, что ответ @ joran лучше, но это также сделало бы работу:
with(dat, data.frame(values =c(x,y), ind=rep(names(dat), each=nrow(dat) ) ) )