2017-10-10 7 views
0

J'écris une grande fonction. Je voudrais utiliser la fonction mapply pour exécuter une fonction sur une liste.mapply fonction ne fonctionne pas comme prévu

J'ai ceci:

x <- list(1,3, 4, 5) 
y <- list(5,6,7,3) 
res <- mapply(x , y , FUN = function(x, y) double(x + y)) 
[[1]] 
[1] 0 0 0 0 0 0 

[[2]] 
[1] 0 0 0 0 0 0 0 0 0 

[[3]] 
[1] 0 0 0 0 0 0 0 0 0 0 0 

[[4]] 
[1] 0 0 0 0 0 0 0 0 

Je voudrais que le résultat soit comme deux listes seulement. Comme ceci:

[[1]] 
0 0 0 0 0 

[[2]] 
0 0 0 0 0 

donc je voudrais que la réponse soit pour la liste deux seulement et non pour chaque élément de la liste.

comment puis-je faire cela?

+1

Pouvez-vous expliquer votre sortie, d'où viennent ces deux fois 5 zéro? À l'heure actuelle, le premier élément de votre sortie est simplement 6 zéro parce que «1 + 5 == 6». – Axeman

+0

@missuse J'ai essayé et j'ai obtenu ceci: '> startpar [1] 10 10' – Heblany

+0

@Axeman merci pour le commentaire. Je suis vraiment surpris comme toi. Je ne comprends pas pourquoi. – Heblany

Répondre

0

Essayez la fonction lapply. Votre longueur de liste est de 4, donc vous ne pouvez pas l'exclure pour être deux en sortie!