2016-08-25 3 views
-1

У меня есть 2 списков матриц А и В:Использование lapply для нескольких списков в функции

n<-10 
generate<-function (n){ 
matrix(runif(10*10),ncol = 10) 
} 
A<-lapply(1:n, generate) 
B<-lapply(1:n, generate) 

Я пытаюсь использовать lapply, чтобы запустить его с помощью функции с двумя входами. Где моя функция является функцией я создал ABC():

ABC(x,y) 

теперь я пытаюсь запустить перечислена для й и В для у с помощью lapply:

l<-lapply(A,B, ABC(x,y)) 

Это не работает, как он признает B как функцию вместо списка, который должен быть связан с y. Нужно ли использовать sapply или mapply, и если да, то как?

Любая помощь будет оценена, спасибо.

+1

Что произошло, когда вы попробовали 'mapply'? –

+0

Ваша функция 'generate' принимает' n' как вход, но не использует 'n' в любой функции. – bouncyball

+0

@ Dirty Sock Sniffer при использовании 'mapply' Я получаю следующую ошибку: get (as.character (FUN), mode =" function ", envir = envir): Объект 'b' режима 'function' не найден '. @bouncyball, это не моя проблема, это бит. – adaodante

ответ

-1

mapply - это то, что вы ищете?

n<-10 
generate<-function (n){ 
    matrix(runif(10*10),ncol = 10) 
} 
A<-lapply(1:n, generate) 
B<-lapply(1:n, generate) 


mapply(generate, c(1:n,1:n)) 
+0

Это не делает то, что вы думаете, оно просто вызовет 'generate' 20 раз. –

+0

Вы правы, я думаю, у меня не возник вопрос. @adaodante получил ответ. –

Смежные вопросы