gpt4 book ai didi

r - 如何从R中的矩阵中提取一系列特定值?

转载 作者:行者123 更新时间:2023-12-04 08:54:01 24 4
gpt4 key购买 nike

我已经为任何整数 n 编写了一个矩阵函数。现在我想提取给定矩阵输出中 0.25 到 1.0 的所有值。我只熟悉根据矩阵中的位置提取元素。你推荐我使用什么功能来做到这一点?先感谢您;如果我需要包含更多信息,请告诉我。
对于 n = 3:

        [,1]      [,2]      [,3]
[1,] 1.0000000 0.5000000 0.3333333
[2,] 0.5000000 0.3333333 0.2500000
[3,] 0.3333333 0.2500000 0.2000000

最佳答案

我认为你的矩阵生成函数是这样的:

make_matrix <- function(n) {
do.call(cbind, lapply(seq(n) - 1, function(x) 1/(seq(n) + x)))
}
所以我们可以让你的矩阵是这样的:
m <- make_matrix(3)
m
#> [,1] [,2] [,3]
#> [1,] 1.0000000 0.5000000 0.3333333
#> [2,] 0.5000000 0.3333333 0.2500000
#> [3,] 0.3333333 0.2500000 0.2000000
我们可以像对向量进行子集化一样对其进行子集化,因为在 R 中,矩阵只是一个添加了 dim 的向量。属性:
m[m > 0.25]
#> [1] 1.0000000 0.5000000 0.3333333 0.5000000 0.3333333 0.3333333
我们还可以使用 which 找出感兴趣号码的位置。 ,只要我们加上参数 arr.ind = TRUE :
which(m > 0.25, arr.ind = TRUE)
#> row col
#> [1,] 1 1
#> [2,] 2 1
#> [3,] 3 1
#> [4,] 1 2
#> [5,] 2 2
#> [6,] 1 3

关于r - 如何从R中的矩阵中提取一系列特定值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63941673/

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