在 R 中重塑大型数据框
reshaping a large dataframe in R
我有一个包含 500 行和 4004 列的数据框,我想将其整形为包含 500500 行和 4 列的数据框。
那是来自这个数据框:
V1 V2 V3 V4 ... V4001 V4002 V4003 V4004
1 2 3 4 ... 4001 4002 4003 4004
1 2 3 4 ... 4001 4002 4003 4004
1 2 3 4 ... 4001 4002 4003 4004
…………………………………………
1 2 3 4 ... 4001 4002 4003 4004
我愿意:
V1 V2 V3 V4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
………………………………
4001 4002 4003 4004
4001 4002 4003 4004
4001 4002 4003 4004
……………………
4001 4002 4003 4004
我已经尝试使用 y=matrix(as.matrix(dataGaus[[1]]),500500,4)(其中 dataGaus 是我的数据框)但它没有给出预期的结果。
我也尝试过使用 reshape,但我无法设法使用它来重现结果(我已经浏览过 Whosebug 和网上的很多帖子)。
在python中,我们可以用一个简单的命令numpy.array(dataGaus).reshape(-1,4)来做到这一点。由于某些原因,我正在用 R 进行分析,我想知道是否有
与 Python?
中 numpy 的 reshape(-1,4) 功能相同的函数
提前致谢,最好
所以如果有人看到这个 post,想知道答案是什么,这是我从 R 邮件列表中得到的答案(感谢 David L Carson):
rows<-500
cols<-4004
dat2 <- array(as.matrix(dataGaus[[1]]), dim=c(rows, 4, cols/4))
dat3 <- as.data.frame(matrix(aperm(dat2, c(1, 3, 2)), rows*cols/4, 4))
其中 dataGaus[[1]] 是我从 datas usinf read.csv 中读取的数据帧。
这里的技巧是使用 aperm 创建置换向量 c(1,3,2)。我仍然不确定它是如何工作的,但就我的目的而言,它非常有效。
我有一个包含 500 行和 4004 列的数据框,我想将其整形为包含 500500 行和 4 列的数据框。 那是来自这个数据框: V1 V2 V3 V4 ... V4001 V4002 V4003 V4004 1 2 3 4 ... 4001 4002 4003 4004
1 2 3 4 ... 4001 4002 4003 4004
1 2 3 4 ... 4001 4002 4003 4004
…………………………………………
1 2 3 4 ... 4001 4002 4003 4004
我愿意:
V1 V2 V3 V4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
………………………………
4001 4002 4003 4004
4001 4002 4003 4004
4001 4002 4003 4004
……………………
4001 4002 4003 4004
我已经尝试使用 y=matrix(as.matrix(dataGaus[[1]]),500500,4)(其中 dataGaus 是我的数据框)但它没有给出预期的结果。 我也尝试过使用 reshape,但我无法设法使用它来重现结果(我已经浏览过 Whosebug 和网上的很多帖子)。 在python中,我们可以用一个简单的命令numpy.array(dataGaus).reshape(-1,4)来做到这一点。由于某些原因,我正在用 R 进行分析,我想知道是否有 与 Python?
中 numpy 的 reshape(-1,4) 功能相同的函数提前致谢,最好
所以如果有人看到这个 post,想知道答案是什么,这是我从 R 邮件列表中得到的答案(感谢 David L Carson):
rows<-500
cols<-4004
dat2 <- array(as.matrix(dataGaus[[1]]), dim=c(rows, 4, cols/4))
dat3 <- as.data.frame(matrix(aperm(dat2, c(1, 3, 2)), rows*cols/4, 4))
其中 dataGaus[[1]] 是我从 datas usinf read.csv 中读取的数据帧。 这里的技巧是使用 aperm 创建置换向量 c(1,3,2)。我仍然不确定它是如何工作的,但就我的目的而言,它非常有效。