使用R在列表的子集上应用函数

时间:2019-02-19 18:09:05

标签: r list function subset apply

我有一个列表,我想从该列表计算列表中每个向量中前五个数字的log2。使用应用功能时,我对子集列表非常困惑。

sample_lengths <- sample(30:40)
mylist <- lapply(sample_lengths, sample)
sapply(list1[1:5], log2)

这行不通,我的名单很长。

1 个答案:

答案 0 :(得分:0)

尝试一下:

> sample_lengths <- sample(30:40)
> mylist <- lapply(sample_lengths, sample)
> sapply(mylist, function(x) {
+   log2(x[1:5])
+ })
         [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]     [,9]
[1,] 4.807355 3.807355 5.087463 4.906891 3.169925 1.000000 2.321928 3.906891 4.247928
[2,] 2.584963 4.857981 5.247928 4.584963 3.906891 2.807355 4.459432 4.392317 5.000000
[3,] 5.087463 0.000000 4.392317 3.169925 0.000000 4.000000 4.584963 3.169925 2.807355
[4,] 4.906891 4.807355 1.584963 4.087463 4.459432 4.754888 3.906891 3.321928 4.584963
[5,] 5.044394 3.584963 5.169925 3.000000 2.807355 4.954196 4.954196 5.000000 5.169925
        [,10]    [,11]
[1,] 4.954196 4.247928
[2,] 5.247928 1.000000
[3,] 4.906891 1.584963
[4,] 1.000000 3.321928
[5,] 4.857981 0.000000
> 

希望有帮助。