我有一个数据集,需要将其转换为矩阵。问题是,它目前是长格式。
示例:
test <- expand.grid(x = c(0:5), y = c(0:6), z = NA)
test$z <- rnorm(length(test$x))
我需要将其转换为一个矩阵,其中矩阵的 x 轴对应于测试的 x 列,y 轴对应于测试的 y 列,矩阵是 z 数据。我似乎无法用逻辑来完成这件事。
最佳答案
也许您想用 z
制作一个矩阵,其行数对应于唯一的 x
值以及唯一的 y 值的行数
.
M <- matrix(test$z, nrow=length(unique(test$x)))
M
# [,1] [,2] [,3] [,4] [,5] [,6] [,7]
# [1,] 1.3709584 1.51152200 -1.3888607 -2.4404669 1.8951935 0.4554501 -0.78445901
# [2,] -0.5646982 -0.09465904 -0.2787888 1.3201133 -0.4304691 0.7048373 -0.85090759
# [3,] 0.3631284 2.01842371 -0.1333213 -0.3066386 -0.2572694 1.0351035 -2.41420765
# [4,] 0.6328626 -0.06271410 0.6359504 -1.7813084 -1.7631631 -0.6089264 0.03612261
# [5,] 0.4042683 1.30486965 -0.2842529 -0.1719174 0.4600974 0.5049551 0.20599860
# [6,] -0.1061245 2.28664539 -2.6564554 1.2146747 -0.6399949 -1.7170087 -0.36105730
数据
test <- expand.grid(x = c(0:5), y = c(0:6), z = NA)
set.seed(42) # for sake of reproducibility
test$z <- rnorm(length(test$x))
关于r - 将数据从长数据更改为矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58545107/