【发布时间】:2016-07-05 16:15:46
【问题描述】:
我有一个列表 myList,其中包含 16 个 data.frames
List of 16
$ dataframe1 :'data.frame': 20 obs. of 60 variables:
..$ Stat : Factor w/ 16 levels "a","b",..: 16 16 16 16 16 16 16 16 16 16 ...
..$ P10 : num [1:31] 1 3 2 2 4 8 0 4 2 5 ...
..$ R : num [1:31] NA NA NA NA NA NA NA NA NA NA ...
..$ S : num [1:31] 0 7 7 1 5 9 3 9 6 2 ...
$ dataframe2 :'data.frame': 20 obs. of 60 variables:
..$ Stat : Factor w/ 16 levels "c","d",..: 16 16 16 16 16 16 16 16 16 16 ...
..$ P10 : num [1:31] 2 1 2 2 5 6 7 2 2 5 ...
..$ R : num [1:31] NA 1 NA NA 2 NA 4 NA NA NA ...
..$ S : num [1:31] 10 2 4 1 5 8 8 8 1 2 ...
...
..
我需要每列中的mean 并在data.frame 中获取结果。
dataframe1 dataframe2 ....
Stat NA NA
P10 6 7
R NA 3
S 12 14
... ... ... ...
我有这个lapply(myList$variable1, mean),它会返回该列表中一个data.frame 的结果。
ldply(myList, data.frame) 不包括 mean 函数。
我将如何为整个列表执行此操作并将其合并到一个 data.frame 中?
【问题讨论】:
-
试试
sapply(myList, colMeans, na.rm=TRUE) -
您的列表结构如何?在您粘贴在上面的输出中,它看起来是高度嵌套的——看起来列表中的第一项是一个名为
Variable1的数据框,并且该数据框有一列数据框也称为Variable1...跨度> -
@akrun 我得到
Error in FUN(X[[i]], ...) : 'x' must be numeric -
为什么添加一个可重现的例子这么难?
-
@akrun 就是这样。最后一个
function(y)需要与function(x)一起运行。