繁体   English   中英

R根据“行”向量和“列”向量的运算创建矩阵

[英]R Create Matrix From an Operation on a “Row” Vector and a “Column” Vector

首先在R中创建一个“行”向量和一个“列”向量:

> row.vector <- seq(from = 1, length = 4, by = 1)
> col.vector <- {t(seq(from = 1, length = 3, by = 2))}

由此,我想通过例如将行向量中的每个值与列向量中的每个值相乘来创建矩阵,从而仅从这两个向量中创建:

     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    6   10
[3,]    3    9   15
[4,]    4   12   20

可以使用apply()以某种方式完成此操作吗? sweep() ...一个for循环?

感谢您的任何帮助!

这是apply到达那里的一种方法。 有没有理由不使用matrix

> apply(col.vector, 2, function(x) row.vector * x)
##      [,1] [,2] [,3]
## [1,]    1    3    5
## [2,]    2    6   10
## [3,]    3    9   15
## [4,]    4   12   20

您最好使用两个实际向量,而不是向量和矩阵:

outer(row.vector,as.vector(col.vector))

#     [,1] [,2] [,3]
#[1,]    1    3    5
#[2,]    2    6   10
#[3,]    3    9   15
#[4,]    4   12   20

简单的矩阵乘法就可以了

row.vector %*% col.vector
#      [,1] [,2] [,3]
# [1,]    1    3    5
# [2,]    2    6   10
# [3,]    3    9   15
# [4,]    4   12   20

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM