我有一个嵌套列表,我想得到列表中一个特定变量的平均值。
当我的列表没有嵌套时,它很简单,但我现在不知道如何更改我的代码,因为有多个不同大小的元素 列表:
> 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))))
我只是不确定如何更改此代码以匹配我获得的方法来自第二个元素而不是第一个(唯一)元素的事实。
感谢您的帮助
例如: 编辑:示例有错误
答案 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