首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何基于另一个矩阵创建矩阵

如何基于另一个矩阵创建矩阵
EN

Stack Overflow用户
提问于 2021-09-23 05:59:15
回答 1查看 35关注 0票数 0

我有一个30行12列的矩阵。我想创建另一个基于这个原始矩阵的矩阵。我想使前6列中的条目是原始矩阵条目的2倍。我想使7-11列中的条目是原始矩阵整体的1.5倍。我希望第12列与原始矩阵相同。

我有以下代码,但它没有给出我想要的输出

代码语言:javascript
运行
复制
sales=matrix(rpois(360, 10), nrow=30)
sales_dol=matrix(, nrow=30, ncol=12)

for (j in 1:12) {
  if (j<7)
    sales_dol[,j]=sales[,j]*2
} else if (j<12){
    sales_dol[,j]=sales[,j]*1.5
} else{
    sales_dol[,j]=sales[,j]
} 

 sales_dol
EN

Stack Overflow用户

发布于 2021-09-23 06:03:25

因为R函数是矢量化的,所以你不需要for循环来做到这一点。

代码语言:javascript
运行
复制
set.seed(123)
sales=matrix(rpois(360, 10), nrow=30)
head(sales)

#     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
#[1,]    8   12   11    6   10   16    9    6   10    14     8    12
#[2,]    9   11   12   15    8    7   10    9   11    12     7     7
#[3,]   14    9    9   10   10   15   10   16   10    16     8    11
#[4,]   10    9    9   13   17    6   13    9    4    13    10    16
#[5,]   10    8    7    8   16   11    8    5    7    11     7     9
#[6,]   15    7    7    7    5    8    6    4    9     7    10     3

sales_dol <- cbind(sales[, 1:6] * 2, sales[, 7:11] * 1.5, sales[, 12])
head(sales_dol)

#     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
#[1,]   16   24   22   12   20   32 13.5  9.0 15.0  21.0  12.0    12
#[2,]   18   22   24   30   16   14 15.0 13.5 16.5  18.0  10.5     7
#[3,]   28   18   18   20   20   30 15.0 24.0 15.0  24.0  12.0    11
#[4,]   20   18   18   26   34   12 19.5 13.5  6.0  19.5  15.0    16
#[5,]   20   16   14   16   32   22 12.0  7.5 10.5  16.5  10.5     9
#[6,]   30   14   14   14   10   16  9.0  6.0 13.5  10.5  15.0     3
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69294715

复制
相关文章

相似问题

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