【发布时间】:2014-09-22 16:59:18
【问题描述】:
我的关联矩阵文件看起来像这样(4 行和 3 列)。
test=read.table("test.csv", sep=",", header=T)
head(test)
LosAngeles SanDiego Seattle
1 2 3
A 1 0.1 0.2 0.2
B 2 0.2 0.4 0.2
C 3 0.3 0.5 0.3
D 4 0.2 0.5 0.1
我想要将这个矩阵文件重塑为数据框。结果应如下所示(12(= 4 * 3) 行和 3 列):
RowNum ColumnNum Value
1 1 0.1
2 1 0.2
3 1 0.3
4 1 0.2
1 2 0.2
2 2 0.4
3 2 0.5
4 2 0.5
1 3 0.2
2 3 0.2
3 3 0.3
4 3 0.1
也就是说,如果我的矩阵文件有 100 行和 90 列。我想制作包含 9000 (= 100 * 90) 行和 3 列的新数据框文件。
我尝试使用 reshape 包,但似乎无法正确使用。有什么建议可以解决这个问题吗?
【问题讨论】:
-
试试这个来自 (stackoverflow.com/questions/15885111/…) 的
as.data.frame(as.table(test)) -
你能提供
dput(head(test))吗? -
也许
reshape2包中的melt会有所帮助(我有点不确定您的数据格式 - 看起来不像 4 行/3 列) -
谢谢你,奥桑!不幸的是,我也确实在发布之前阅读了问题,但它对我不起作用。
-
非常感谢大卫!!!其实我的数据是这样的......dput(head(test))......structure(list(X.1 = c(NA, 1L, 2L, 3L, 4L, 5L), GO.0000165 = c(1, 0.285, 0.336, 0.183, 0.067, 0.062), GO.0001505 = c(2, 0.215, 0.197, 0.19, 0.084, 0.078), GO.0001568 = c(3, 0.11, 0.104, 0.13, 0.091, 0.084), GO.0001944 = c(4, 0.086, 0.083, 0.105, 0.089, 0.082), GO.0001945 = c(5, 0.0. , 0.093, 0.05, 0.086, 0.079), GO.0002755 = c(6, 0.176, 0.245, 0.116, 0.101, 0.096), ....