3

データセット

firstList  <- list(a = 1:3, b = 4:6)
secondList <- list(c = 7:9, d = 10:12)

mapply で複数のリストの平均を計算しようとしています。

mapply(mean, firstList, secondList)

Using mapply with mean function on a matrix に従ってmean、最初の引数のみを平均する ため、機能しませんでした

これは正しく動作します:

mapply(mean, firstList)
mapply(mean, secondList)

次にlapply、一度に1つのリストを提供しようとしましたmapply

lapply(c(firstList, secondList), function(x) mapply(mean, x))

出力は平均ではなく、個々のリストでした

mean必要なのは、を使用して複数のリストの を計算する方法mapplyです。mapplyリストの「意味」を返さなかった理由についても説明をいただければ幸いです

よろしくお願いします

4

1 に答える 1

3

によると?mean、使い方は

mean(x, ...)

mapplyは「x」と「y」があるため、対応するlist要素を連結して単一の「x」を作成し、mean

mapply(function(x,y) mean(c(x,y)), firstList, secondList)
#a b 
#5 8 

と同じ、

mean(c(1:3, 7:9))
#[1] 5

apply関数の組み合わせを使用している場合は、 で連結し、 で要素をMapループして、listsapplymean

sapply(Map(c, firstList, secondList), mean)
# a b 
#5 8 

または、lengthsof要素が同じ場合、出力がwithoutであるため、list使用できますcolMeansmapply/cmatrixSIMPLIFY=FALSE

colMeans(mapply(c, firstList, secondList)) 
#a b 
#5 8 
于 2015-09-19T09:36:48.443 に答える