R中不等长度列表的平均值

时间:2016-09-19 09:11:25

标签: r list dataframe mean

我有不等长的矢量列表。我想要的是平均值。在每个指数。例如:

a = c(2,3,4)
b = c(2,3,4,5) 
c = c(5,0,3,4,6)

avg(a,b,c) = c(9/3, 6/3, 11/3, 9/2, 6/1)

如何在R中实现这一目标?

3 个答案:

答案 0 :(得分:7)

我们可以将矢量放在rowMeans中,填充NA用于具有较少元素数量的列表元素并执行lst <- list(a, b, c) rowMeans(sapply(lst, `length<-`, max(lengths(lst))), na.rm=TRUE) #[1] 3.000000 2.000000 3.666667 4.500000 6.000000

a <- 2:4
b <- 2:5
c <- c(5, 0, 3, 4, 6)

数据

declare module ol {

function inherits(arg1:any, arg2:any);
 ........................
export class Collection<T> {
............................

答案 1 :(得分:3)

您可以在cbind.fill

中使用rowr功能

cbind fill选项为[{1}}的数据,并NA对data.frame的colMeans转换

t

答案 2 :(得分:1)

使用基数R:

ls <- list(a, b, c)
sapply(1:max(lengths(ls)), function(i) mean(sapply(ls, function(x) x[i]), na.rm = T))

# [1] 3.000000 2.000000 3.666667 4.500000 6.000000

我们的想法是在mean上应用ls函数(在列表中每个向量的1th, 2th, 3th, ...上)并忽略NA值。