0

I have this data

data=data.frame(GROUP=c(1,2), a.q.var=c(5,4), b.w.var=c(7,8),
c.e.var=c(2,3))

but I want this data where I reshape by '.var'

data2=data.frame(VARIABLE=c('a.q.var','b.w.var','c.e.var','a.q.var','b.w.var','c.e.var'),
VALUE=c(5,7,2,4,8,3),
GROUP=c(1,1,1,2,2,2))

And what I try is:

library(reshape2)
data2 = reshape(data, id.var = grep('$.var'))

but it does not work

bvowe
  • 3,004
  • 3
  • 16
  • 33

1 Answers1

0

We can use pivot_longer

library(tidyr)
pivot_longer(data, cols  = -GROUP, names_to = 'VARIABLE', values_to = 'VALUE')

Or with data.table

library(data.table)
melt(setDT(data), id.var = 'GROUP', variable.name = 'VARIABLE', value.name = 'VALUE')
akrun
  • 874,273
  • 37
  • 540
  • 662