大家好,我正在寻找一些编码建议和技巧。我有一个像这样的10x10矩阵:
mat <- matrix(NA, nrow = 10, ncol = 10)
和一个函数,它接受两个数字并返回一个简单的标量:
fct <- function(x1, x2){
return(x1 * x2)
}
我的功能有点复杂,但这只是为了说明目的。
我想通过将函数fct应用于两个向量来填充矩阵垫,让我们说:
x1 <- c(1:10)
x2 <- c(1:10)
我可以通过循环轻松完成它,但我想知道是否有人知道更好的方法,也许使用mapply / Map。
谢谢你的帮助!
像这样向量化函数:
fct <- function(x1, x2){
out <- numeric(length = length(x1))
for(i in seq_along(x1)) {
out[i] <- x1[i] * x2[i]
}
return(out)
}
然后应用外部:
outer(x1, x2, fct)
会做的!
谢谢!