gpt4 book ai didi

r - 按列从矩阵中提取 block

转载 作者:行者123 更新时间:2023-12-04 09:34:55 25 4
gpt4 key购买 nike

假设我有一个包含 1000 列的矩阵。我想每隔一个 n 创建一个新矩阵来自原始矩阵的列,从列 i 开始.

所以可以说 n=3i=5 ,那么旧矩阵中我需要的列是 5,6,7,11,12,13,17,18,19等等。

最佳答案

使用两个 seq() s 创建开始和停止边界,然后使用 mapply()建立真正的列索引间隔。然后只是普通的括号符号从你的矩阵中提取。

set.seed(1)
# using 67342343's test case
M <- matrix(runif(100^2), ncol = 100)
n <- 3
i <- 5

starts <- seq(i, ncol(M), n*2)
stops <- seq(i+(n-1), ncol(M), n*2)
col_index <- c(mapply(seq, starts, stops)) # thanks Jaap and Sotos

col_index
[1] 5 6 7 11 12 13 17 18 19 23 24 25 29 30 31 35 36 37 41 42 43 47 48 49 53 54 55 59 60 61 65 66 67 71 72 73 77 78
[39] 79 83 84 85 89 90 91 95 96 97

M[, col_index]

关于r - 按列从矩阵中提取 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46022714/

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