2017-10-10 217 views
0

我正在寫一個大功能。我想用mapply函數在列表上運行一個函數。mapply功能不能按預期工作

我有這樣的:

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 

我想的結果是因爲只有兩個列表。像這樣:

[[1]] 
0 0 0 0 0 

[[2]] 
0 0 0 0 0 

所以我想這兩個列表的答案只是不是列表中的每個元素。

我該怎麼做?

+1

你能解釋一下你的輸出嗎,這兩次5零是從哪裏來的?現在,實際輸出的第一個元素只是6個零,因爲'1 + 5 == 6'。 – Axeman

+0

@missuse我試了一下,得到了這個:'> startpar [1] 10 10' – Heblany

+0

@Axeman謝謝你的評論。我真的很喜歡你。我不懂爲什麼。 – Heblany

回答

0

嘗試lapply功能。

my_list(x,y) 
m <- length(my_list) 
lapply(1:m, function(i) double(x[[i]]+y[[i]])) 

你的列表長度是4,所以你不能除了它是兩個輸出!