Я использую lapply функцию в следующем виде: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, а затем использовать lapply функцию для каждого idx4. Тогда, для следующего idx1, то же самое. Я должен быть чем-то вроде вложенного лапши.
До сих пор я не смог придумать правильный способ сделать это. Кто-нибудь даст какой-нибудь совет?
PS: Этот вопрос связан с вопросом, который я ранее задавал, но моя проблема заключается в том, что я не могу обобщить предыдущий ответ на 4 измерения, учитывая, что он является структурами, структура скрепления не является одна и та же. Отныне я теперь прошу совета о том, как сделать это обобщение. Спасибо