我正在尝试在R中设置一个3D矩阵。我想这很简单。但是,到目前为止我还没有找到解决方案。 假设我们要创建一个365x6x4矩阵。 同样重要的是我如何更改矩阵中的一个条目。 假设我们想要将值204分配给元素[304,5,2]。 我非常感谢你的回答!
谢谢!最好的,F
答案 0 :(得分:32)
试试这个:
ar <- array(someData, c(365, 6, 4));
ar[304,5,2] <- 204;
someData
可能是
someData <- rep(0, 365*6*4);
甚至可能更好
someData <- rep(NaN, 365*6*4);
答案 1 :(得分:13)
矩阵是数组的特殊二维情况。 (引自?matrix
的帮助。)
所以,你需要array
:
x <- array(rep(1, 365*5*4), dim=c(365, 5, 4))
str(x)
num [1:365, 1:5, 1:4] 1 1 1 1 1 1 1 1 1 1 ...
设置特定值:
x[305, 5, 2] <- 204
打印一片:
x[305, , ]
[,1] [,2] [,3] [,4]
[1,] 1 1 1 1
[2,] 1 1 1 1
[3,] 1 1 1 1
[4,] 1 1 1 1
[5,] 1 204 1 1
答案 2 :(得分:5)
试试这个简单的例子(让这个例子变得相当小,所以很明显发生了什么 - 我在下面解释如何根据你的确切问题进行调整!)...
m = array(1:60, dim=c(3,4,5))
m[2,1,5]
[1] 50
m[2,1,5] = -50
m[2,1,5]
[1] -50
键入m
以查看整个3d数组:)
在您的示例中,您将初始数组设置为m = array(NA, dim=c(365,6,4))
(这将填充NA以开始 - 您是否有数据填充?)并且分配为{{1当然:)