R获取列表中每个第n个元素的行平均值

时间:2016-09-28 19:14:25

标签: r list

我有一个嵌套列表,我想得到列表中一个特定变量的平均值。

当我的列表没有嵌套时,它很简单,但我现在不知道如何更改我的代码,因为有多个不同大小的元素 列表:

> str(means2)
List of 1
 $ :List of 2
  ..$ :'data.frame':    12 obs. of  2 variables:
  .. ..$ means        : num [1:12] 465063 355968 76570 542873 854570 ...
  .. ..$ variablenames: chr [1:12] "NumberOfPassengers" "FareClass" "TripType" "JourneyTravelTime" ...
  ..$ :'data.frame':    12 obs. of  2 variables:
  .. ..$ means        : num [1:12] 449490 359997 67899 602895 967327 ...
  .. ..$ variablenames: chr [1:12] "NumberOfPassengers" "FareClass" "TripType" "JourneyTravelTime" ...

我正在使用此代码

testdf=as.data.frame(rowMeans(simplify2array(sapply(means2,"[[",1))))

我只是不确定如何更改此代码以匹配我获得的方法来自第二个元素而不是第一个(唯一)元素的事实。

感谢您的帮助

例如: 编辑:示例有错误

1 个答案:

答案 0 :(得分:1)

根据{means2'嵌套str的{​​{1}},这应该有用

list

由于只有一个外部unlist(lapply(means2, function(x) rowMeans(do.call(cbind, sapply(x, "[", 1))))) ,我们可以使用list提取它,循环遍历[[个元素,将第一列作为向量,获取元素和{{1} 1}}并除以list的长度(在示例中为2)。

Reduce

或者在提取list元素后,Reduce(`+`, lapply(means2[[1]], `[`, 1))/2 并执行list

cbind

数据

rowMeans