所以我试图转换一组矩阵格式的数据,比如这个
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 :(得分:5)
欢迎来到SO。你可以使用reshape2
包中的融合函数来做到这一点。假设dt
是您的矩阵。
dt=as.data.frame(dt)
dt$seqID = 1:nrow(dt)
melt(dt, id = "seqID")
答案 1 :(得分: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))