gpt4 book ai didi

r - 在 R 中,是否有任何 native 函数可以根据参数获取矩阵的行或列?

转载 作者:行者123 更新时间:2023-12-02 07:39:22 24 4
gpt4 key购买 nike

我目前正在使用这个实现:

getVal = function(i, x, margin) {
rst = ifelse(margin==1, x[i, ], x[, i])
}

即返回 x 的第 i 行或第 i 列,具体取决于边距的值。

===更新===

刚刚意识到我在这里使用 ifelse(x,y,z) 语句是错误的,因为它返回的值与其第一个参数的长度相同。我的 getVal 实现应该有:

...
rst = if (margin == 1) x[i, ] else x[, i]
...

最佳答案

abind::asub() 所做的事情与您正在尝试做的事情非常相似(并且也很好地概括为高维数组)。它的 idxdims 参数分别对应于您的 imargin 参数。

library(abind)

(m <- matrix(1:6, ncol=2))
# [,1] [,2]
# [1,] 1 4
# [2,] 2 5
# [3,] 3 6

asub(x = m, idx = 2, dims = 1) # Extract 2nd row
# [1] 2 5

asub(x = m, idx = 2, dims = 2) # Extract 2nd column
# [1] 4 5 6

关于r - 在 R 中,是否有任何 native 函数可以根据参数获取矩阵的行或列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12682049/

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