计算R中列表中多个数据帧的偏度

时间:2017-07-27 14:11:01

标签: r list loops dataframe lapply

我有一个包含12个数据框的列表( my.list )。它们看起来都一样。我想计算我的列表中所有数据帧的** nefah“列**(第五列)的偏度。我知道如何为每个数据帧分别计算偏度。 我使用“时刻”套餐:

library(moments)

skewness(X2016_kvish_1_10t, na.rm =  T) # compute 1 dataframe

所以我的问题是,如何计算列表中所有数据框中第五列的偏度。 我试过循环,但我不知道如何构建它。

这是我的数据框的一个例子。

    kvish keta maslul yom nefah                date day_mean day_min day_max
1       1   10      1   1  1710 2016-09-11 00:00:00 2848.375     588    4614
2       1   10      1   1   934 2016-09-11 01:00:00       NA      NA      NA
3       1   10      1   1   800 2016-09-11 02:00:00       NA      NA      NA
4       1   10      1   1   637 2016-09-11 03:00:00       NA      NA      NA
5       1   10      1   1   588 2016-09-11 04:00:00       NA      NA      NA
6       1   10      1   1   951 2016-09-11 05:00:00       NA      NA      NA
7       1   10      1   1  2312 2016-09-11 06:00:00       NA      NA      NA
8       1   10      1   1  3769 2016-09-11 07:00:00       NA      NA      NA
9       1   10      1   1  3348 2016-09-11 08:00:00       NA      NA      NA
10      1   10      1   1  2788 2016-09-11 09:00:00       NA      NA      NA
11      1   10      1   1  2879 2016-09-11 10:00:00       NA      NA      NA
12      1   10      1   1  3318 2016-09-11 11:00:00       NA      NA      NA
13      1   10      1   1  3713 2016-09-11 12:00:00       NA      NA      NA
14      1   10      1   1  4102 2016-09-11 13:00:00       NA      NA      NA
15      1   10      1   1  4333 2016-09-11 14:00:00       NA      NA      NA
16      1   10      1   1  4583 2016-09-11 15:00:00       NA      NA      NA
17      1   10      1   1  4614 2016-09-11 16:00:00       NA      NA      NA
18      1   10      1   1  4367 2016-09-11 17:00:00       NA      NA      NA
19      1   10      1   1  4040 2016-09-11 18:00:00       NA      NA      NA
20      1   10      1   1  3766 2016-09-11 19:00:00       NA      NA      NA
21      1   10      1   1  3443 2016-09-11 20:00:00       NA      NA      NA
22      1   10      1   1  2793 2016-09-11 21:00:00       NA      NA      NA
23      1   10      1   1  2439 2016-09-11 22:00:00       NA      NA      NA
24      1   10      1   1  2134 2016-09-11 23:00:00       NA      NA      NA
25      1   10      1   2  1317 2016-09-12 00:00:00 2818.042     660    4497
26      1   10      1   2   759 2016-09-12 01:00:00       NA      NA      NA
27      1   10      1   2   727 2016-09-12 02:00:00       NA      NA      NA
...
168 roes total

1 个答案:

答案 0 :(得分:0)

您可以使用lapply循环浏览列表。您可以指定只希望函数应用于lapply函数参数中的第5列。

一个例子:

# sample data.
my_list = list(data.frame(matrix(runif(100,1,10),20,5)),data.frame(matrix(runif(100,1,10),20,5)),data.frame(matrix(runif(100,1,10),20,5)))

library(moments)
lapply(my_list, function(x) {skewness(x[,5]) })

返回:

[[1]]
[1] 123.9227

[[2]]
[1] 107.6823

[[3]]
[1] 121.1198