[英]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.