gpt4 book ai didi

r - 如何根据下标在矩阵中逐元素赋值?

转载 作者:行者123 更新时间:2023-12-02 05:53:40 24 4
gpt4 key购买 nike

我定义了 2 个数值向量,如下所示:

> x <- c(1,2)
> y <- c(1,2)

现在我想要一个 2x2 矩阵,例如由根据索引添加 xy 元素,因此最终结果应如下所示:

     [,1] [,2]
[1,] 2 3
[2,] 3 4

使用嵌套 for 循环实现此目的很简单,但无法在非常大的数据集上执行。尝试用例如向量化它

> z <- matrix(nrow=2, ncol=2)
> z[x,y] <- x + y

失败,因为+运算符在对z进行赋值之前将xy添加为向量。使用带有索引 ij 的显式下标也会失败:

> i <- 1:2
> j <- 1:2
> z[i,j] <- x[i] + y[j]
> z
[,1] [,2]
[1,] 2 2
[2,] 4 4

有没有办法使用矢量化/下标来实现我想要的目标,或者我是否仅限于嵌套 for 循环或应用函数之一?

最佳答案

也许您正在寻找外部函数?

outer(x,y,"+")

这给出:

     [,1] [,2]
[1,] 2 3
[2,] 3 4

关于r - 如何根据下标在矩阵中逐元素赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15092666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com