从数据中的子集重复随机样本

时间:2014-11-11 01:04:23

标签: r for-loop split-apply-combine

我是R新手,并且已经遇到了一个简单的循环过程。数据由尺寸为81161乘9的列表组成。观察结果是随着时间的推移。目前的需求是隔离一组独特的观察结果并随机抽取一个观测数据点。在这个阶段,我已经审查并尝试了一些选项,其中没有一个是正在执行的财产。首先,for循环然后应用。

为了更好地了解我概述的工作流程。这应该是一个相对直接的分裂 - 应用 - 组合。申请是限制独特个人日的样本。为此,代码遍历所有维度的基本定义,然后定义唯一值,排序和排名(从中将唯一的persons_day设置为ordianl标度,然后使用persons_day将这些值链接回原始数据)作为关键)。从这一点开始,我尝试了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

0 个答案:

没有答案