【发布时间】:2013-11-16 13:14:45
【问题描述】:
我正在使用以下形式的 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 结构是不一样的.从此以后,我现在要求提供有关如何进行这种概括的提示。谢谢
【问题讨论】: