首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在R中设置3D矩阵并访问某些元素

在R中设置3D矩阵并访问某些元素
EN

Stack Overflow用户
提问于 2012-06-09 20:45:53
回答 3查看 70.6K关注 0票数 35

我正在尝试在R中建立一个3D矩阵,我想这是一个简单的方法。然而,到目前为止,我还没有找到解决方案。假设我们想创建一个365x6x4矩阵。对我来说,同样重要的是如何更改矩阵中的一个条目。假设我们想给元素304,5,2赋值204。我非常感谢你的回答!

谢谢!最佳,F

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-09 20:56:04

试试这个:

代码语言:javascript
复制
ar <- array(someData, c(365, 6, 4));  
ar[304,5,2] <- 204;

someData可能在哪里

代码语言:javascript
复制
someData <- rep(0, 365*6*4);  

或者甚至更好

代码语言:javascript
复制
someData <- rep(NaN, 365*6*4);  
票数 43
EN

Stack Overflow用户

发布于 2012-06-09 20:55:43

矩阵是数组的一种特殊二维情况。(引用?matrix的帮助)。

因此,您需要array

代码语言:javascript
复制
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 ...

设置特定值:

代码语言:javascript
复制
x[305, 5, 2] <- 204

打印一个切片:

代码语言:javascript
复制
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
票数 16
EN

Stack Overflow用户

发布于 2012-06-09 20:54:53

尝试这个简单的例子(我已经使这个例子变得相当小,所以很清楚发生了什么-我在下面解释如何针对你的精确问题调整它!)……

代码语言:javascript
复制
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)) (这将使用NAs填充它-您有数据填充它吗?)当然,赋值是m[304,5,2] = 204 :)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10961141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档