我正在创建一个函数,允许我以随机比例乘以我的数据,对它们求和,从而创建我的数据乘以此比例的混合 .

例如,如果我有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的列表,并且唯一要与Permutation相乘的成员是 specdat[i]data$corr.spec%cor.absorption

因此,我的问题是:如何仅在列表的特定成员上遍历(非常)嵌套列表?