2015-10-27 44 views
1

所以我想一組是矩陣格式數據的轉換,這樣在R中將矩陣轉換爲類SPSS格式?

V1 V2 V3 V4 
1 12 32 12 54 
2 43 34 23 24 
3 43 23 65 54 

等在那裏1-3的SeqID和V1-4是ID

我想有它的格式更容易爲SPSS瞭解,像這樣:

ID seqID Value 
1  1 12 
2  1 32 
3  1 12 
4  1 54 
1  2 43 

什麼是R中做到這一點的最好方法是什麼?它應該是一些簡單的文本操作,並且我嘗試了一個循環來解決它(例如,通過提取列,然後再綁定值),但不知何故循環語法仍然逃脫我!幫助讚賞!

+0

見@EDi的答案在這裏http://stackoverflow.com/questions/11176781/r-matrix-to-rownames -colnames-values – lukeA

+0

你在之後被稱爲「長」格式。你有什麼是「寬」的格式。 –

回答

5

歡迎來到SO。您可以使用reshape2軟件包中的熔化函數來執行此操作。假設dt是你的矩陣。

dt=as.data.frame(dt) 
dt$seqID = 1:nrow(dt) 
melt(dt, id = "seqID") 
+1

謝謝,編輯。 :) – user974514

+0

太棒了!很高興我終於做了一個帳戶,這工作完美! – lmrta

0

數據生成:

m <- matrix(c(12, 43, 43, 32, 34, 23, 12, 23, 65, 54, 24, 54), nrow = 3, 
      dimnames = list(c(1:3), c("V1", "V2", "V3", "V4"))) 
m 

處理:

library(tidyr) 
library(dplyr) 

as.data.frame(m) %>% 
    mutate(ID = rownames(m)) %>% 
    gather(seqID, Value, -ID) %>% 
    mutate(seqID = as.numeric(seqID))