我正在创建一个函数,允许我将数据按随机比例相乘,求和,从而创建我的数据乘以该比例的混合物。
例如,如果我有4个数据集,我将创建一个4个随机数的比例,这些比例求和100,然后将每个数据集乘以每个比例并求和。 除此之外,我希望我的函数遍历我的数据集以及比例,以便对比例数据集乘法的所有可能组合进行置换
可以看到一个示例数据集:
library(LCF)
data(stdmix)
我的功能目前停留在这一点:
library(combinat)
props <- function(corr.spec.standards = specdat, size, nprop){
if (size < 2) stop("number must be greater than 1")
## create progress bar
try(pb <- txtProgressBar(min = 1, max = nprop, style = 3), silent = TRUE)
## initial loop for proportions
for (i in 1:nprop) {
prop <- sample.int(100, size = size)
prop <- (prop/sum(prop))
permut <- permn(prop)
## permutation loop
for (i in permut[[i]]) {
mapply(`*`,permut, rep(specdat[i]$data$corr.spec$cor.absorption,each=length(permut)))
}
}
我的问题是specdat
是一个嵌套列表,在此示例中是8个列表,并且要乘以排列的唯一成员是specdat[i]data$corr.spec%cor.absorption
因此,我的问题是:如何仅在列表的特定成员上循环遍历(非常)嵌套的列表?