user3741035
user3741035

Reputation: 2545

Reshape matrix in R

I am struggling to find an automated way to reshape my matrix below. Please see my example output on how I would like it to be reshaped.

        Change    Position1   Position2    Position3     Position4
Gene1   2.3        1           1             1             0
Gene2   -1.3       0           1             1             1
Gene3   0.4        0           0             1             1

Output:

Position      1 or 0       Change

Position1     1            2.3
Position1     0           -1.3
Position1     0           0.4
Position2     1           2.3
Position2     1           -1.3
Position2     0           0.4
...

Upvotes: 0

Views: 100

Answers (1)

MrFlick
MrFlick

Reputation: 206606

If you read in your data like

dd<-read.table(text="        Change    Position1   Position2    Position3     Position4
Gene1   2.3        1           1             1             0
Gene2   -1.3       0           1             1             1
Gene3   0.4        0           0             1             1", header=T)

you can just use

library(reshape2)
melt(dd, id.vars="Change")

#    Change  variable value
# 1     2.3 Position1     1
# 2    -1.3 Position1     0
# 3     0.4 Position1     0
# 4     2.3 Position2     1
# 5    -1.3 Position2     1
# 6     0.4 Position2     0
# 7     2.3 Position3     1
# 8    -1.3 Position3     1
# 9     0.4 Position3     1
# 10    2.3 Position4     0
# 11   -1.3 Position4     1
# 12    0.4 Position4     1

Upvotes: 1

Related Questions