gpt4 book ai didi

r - 根据列索引向量选择 data.table 值

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

如何从 data.table 中选择值基于列索引向量。

我有一个与 data.table 中的行数相同长度的整数向量:

set.seed(100)
col.indexes <- sample(c(1:4), 150, replace = TRUE)

如何基于它创建值向量?例如这没有 for环形:
iris <- setDT(iris)
res <- c()
for(i in 1:150) {
res[i] <- iris[i, .SD, .SDcols = col.indexes[i]]
}
res <- unlist(res)

这大致基于这个问题:
How to subset the next column in R

最佳答案

我们可以按行序列进行分组并提取值

res <- iris[, col1 := col.indexes][, .SD[[col1[1]]], 1:nrow(iris)]$V1

或在 base R ,它可以以矢量化的方式完成
iris <- setDF(iris)
iris[1:4][cbind(seq_len(nrow(iris)), col.indexes)]

关于r - 根据列索引向量选择 data.table 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58313278/

26 4 0