gpt4 book ai didi

r - 如何通过配对列来对数据框进行子集化

转载 作者:行者123 更新时间:2023-12-01 23:43:02 25 4
gpt4 key购买 nike

我需要以这样一种方式提取列:我先选择一列,然后再选择相隔 288 列的下一列。例如:

 datanew <- data[, c(8, 296, 9, 297, 10, 298, 11, 299, 12, 300 etc)] 

我需要这样做直到 288、576。

有人可以建议是否有更快的方法吗?

最佳答案

有点像

first_columns <- 8:288
next_columns <- first_columns+288
comb <- c(rbind(first_columns, next_columns))

这是棘手的部分 - 因为 R 以列优先顺序存储矩阵,所以创建一个两行矩阵然后使用 c() 将其折叠为一个向量将生成一个交错向量列号。 (检查 head(comb) 显示 8 296 9 297 10 298 ... 按要求。)

然后执行data[, comb]

另一种更明确的方法:

comb <- rep(NA_real_, 2*(288-7))     ## set up vector (could also use numeric())
odds <- seq(1,length(comb), by=2)
evens <- seq(2, length(comb), by=2)
comb[odds] <- 8:288
comb[evens] <- comb[odds] + 288

关于r - 如何通过配对列来对数据框进行子集化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64733138/

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