在R中将矩阵转换为类似SPSS的格式?

在R中将矩阵转换为类似SPSS的格式?,r,bioinformatics,spss,R,Bioinformatics,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中,最好的方法是什么?这应该是一些简单的

所以我试图转换一组矩阵格式的数据,如下所示

  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中,最好的方法是什么?这应该是一些简单的文本操作,我尝试创建一个循环来解决它,例如提取列,然后再次绑定值,但不知何故,循环语法仍然让我无法理解!谢谢你的帮助

欢迎来到SO。您可以使用Reforme2软件包中的melt函数来实现这一点。假设dt是你的矩阵

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

欢迎来到SO。您可以使用Reforme2软件包中的melt函数来实现这一点。假设dt是你的矩阵

dt=as.data.frame(dt)
dt$seqID = 1:nrow(dt)
melt(dt, id = "seqID")
数据生成:

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
数据生成:

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

请参见@EDi的答案,您所追求的是长格式。您所拥有的是宽格式。请参见@EDi的答案。您所追求的是长格式。你拥有的是宽格式。太棒了!很高兴我终于做了一个帐户,这是完美的工作!好极了很高兴我终于做了一个帐户,这是完美的工作!