我正在使用以下形式的 lapply 函数:
y=rnorm(10)
x1=c(1,1,1,2,2,2,3,3,3,4)
x2=c(5,5,6,6,7,7,8,8,9,9)
x3=c(7,7,8,8,9,9,10,10,11,11)
t1 <- outer(x1, unique(x1), '<=')
t2 <- outer(x2, unique(x2), '<=')
t3 <- outer(x3, unique(x3), '<=')
lapply(seq_along(unique(x1)), function(idx) t(y*t1[,idx]*t2) %*% t3)
由于我是 R 初学者,我在概括上述 lapply 调用以添加另一个变量时遇到问题,也就是说,现在 lapply 将调用一个有 2 个参数的函数。这是我试图做的:
x4=c(7,6,6,5,9,5,10,1,1,2)
t4 <- outer(x4, unique(x4), '<=')
lapply(list(idx1=seq_along(unique(x1)),idx4=seq_along(unique(x4))),
function(idx1,idx4) t(y*t1[,idx1]*t2) %*% t3*t4[,idx4])
这里的思路如下:我修复了idx1,然后对每个idx4使用lapply函数。然后,对于下一个 idx1,同样如此。我应该像嵌套的 lapply 一样。
到目前为止,我无法想出正确的方法来做到这一点。有人会提供任何提示吗?
PS.:这个问题与我之前问过的一个问题有关,但我的问题是我无法将之前的答案概括为 4 个维度,因为它的结构方式,lapply 结构是不一样的。从此以后,我现在要求提供有关如何进行这种概括的提示。谢谢