我是一个 R 新手,并且遇到了一个应该是简单的 for 循环过程的砖墙。数据由一个维度为 81161 x 9 的列表组成。观察是随时间变化的个体。当前的需求是隔离一组独特的观察结果并随机提取其中一个观察数据点。在这个阶段,我已经审查并尝试了一些选项,其中没有一个是被执行的财产。首先 for 循环然后应用。
为了更好地了解我概述的工作流程。这应该是一个相对直接的拆分应用组合。apply 是一个限制为唯一 individual_days 的示例。为此,代码将遍历所有维度的基本定义,然后定义唯一值、排序和排名(从中将唯一的 individual_day 设置为序数比例,然后使用 individual_day 将这些链接回 originsl 数据作为关键)。从这一点开始,我尝试了 for 循环的两种替代方案 --- 首先使用按等级拆分来提供 DSrank$'1, 2, 3...n' (尝试在示例 2 中使用)并使用看到的子集在示例 1 中。然后将随机提取单个样本并整理到子数据集中。从这一点开始,将进行其他分析。
### example 1: for loop
SDS <- list()
for(i in 1:length(UID)) {
`SDS[[i]] <- sample(nrow(SplitDS$[i]), 1, replace=FALSE)
`SDS[[i]]["Samples"] < i
}
head(SDS)
### example 2: for loop
SDS <- list()
for(i in 1:length(UID)) {
`SubSDID <- subset(DSID, DSrank == 'i', )
`SDS <- sample(nrow(SubSDID), 1, replace=FALSE)
}
head(SDS)
### example 3: apply subset
bootstrap <- lapply(1:length(UID), function(i) {
`samp <- sample(1:nrow(DSID$DSrank, rep = TRUE)
`DSID$DSrank[sampl, ]
}
这些都是基于我通过 CRAN、stackoverflow 和其他 R 代码搜索结果找到的示例。
如果您有任何建议、提示或技巧可以分享,我们将不胜感激。
MB