【发布时间】:2015-12-20 10:20:37
【问题描述】:
我想构建一个数组的第三维之和。这里有一些示例数据(带有 3d 名称,这很重要):
my.array <- array(1:24, dim=c(3,4,2))
dimnames(my.array)[[3]] <- c("111.2012", "112.2012")
因为我想要一个列表作为输出,所以我会这样做(根据 Ananda Mahto),它适用于这个示例(并保留名称):
as.list(apply(my.array, MARGIN=c(3), sum))
但是,不在包含 NA 的数组上。举个例子:
my.arrayNA <- array(c(NA,1,NA,5,6,3,NA,5), dim=c(2,2,2))
我尝试如下使用na.rm=TRUE,但没有成功。
as.list(apply(my.arrayNA, function(x) MARGIN=c(3), sum(x, na.rm=TRUE)))
想法如何得到总和?谢谢
【问题讨论】:
-
as.list(apply(my.arrayNA, MARGIN=3, function(x) sum(x, na.rm=TRUE)))MARGIN 必须是apply()的参数。或者简单地说:as.list(apply(my.arrayNA, MARGIN=3, FUN=sum, na.rm=TRUE))。甚至更短:as.list(apply(my.arrayNA, 3, sum, na.rm=TRUE)) -
您现在有两个答案。因此,最终您希望通过单击投票旁边的按钮来接受答案。或者您可以评论为什么答案不是您想要的。