2014-09-11 3 views
0

Я изо всех сил пытаюсь найти автоматический способ изменить мою матрицу ниже. Пожалуйста, посмотрите мой пример, как я хочу, чтобы он был изменен.Reshape matrix in R

 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 

Выход:

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 
... 

ответ

1

Если вы читаете в ваших данных, как

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) 

вы можете просто использовать

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 
+0

Я пытался, но я получил эту ошибку при попытке запишите его с помощью ggplot boxplot: Ошибка в блоке (tic_pos.c, "mm"): 'x' и 'units' должны h ave length> 0 – user3741035

+0

У вас есть сообщение об ошибке 'unit'?!? Это не имеет смысла. После этого вы выполняете больше команд (например, по графику)? Вы скопировали и вставляете код точно, я написал его для этого образца? Это было протестировано с помощью R 3.1.0, и reshape2_1.4 – MrFlick

+0

получил это, чтобы работать настройкой as.factor вокруг моего значения – user3741035