【发布时间】:2013-11-18 22:33:37
【问题描述】:
在 R 中,获取任何大型数据框(例如 300,000 行和 30 列)。我想使用存储在另一个数据框中的开始和停止索引值创建数据框列表(两列,第一列是开始值,第二列包含停止值。)开始-停止中的行数df 将是存储在列表中的数据帧数(在这个小示例中为 6)。对我来说,听起来可能有一个简单的功能可以做到这一点,但在我总是在使用 split 命令或使用不同的条件语句之前创建数据帧列表之前,所以我做了一些研究但找不到解决方案。另外,我在下面进行了双重循环,这不是可取的。非常感谢任何帮助!
启动、停止数据帧示例
> df
headID tailID
[1,] 688 704
[2,] 2576 2583
[3,] 4005 4018
[4,] 4336 5761
[5,] 5762 7201
[6,] 7202 8641
所以我在想类似(伪代码):
n <- length(bigDF)
subList <- list()
start.idx <- NA
obs <- dim(bigDF)
for(i in 2:obs){
for(j in 1:df) {
start.idx <- df$headID[j]
}
else if
end.idx <- df$tailID[j]
subMat <- bigDF[start.idx:end.idx,]
subList[[counter]] <- subMat
start.idx <- NA
counter <- counter + 1
}
}
}
【问题讨论】: