【问题标题】:Applying a function over a subset of a list with R使用 R 对列表的子集应用函数
【发布时间】:2019-07-13 07:45:49
【问题描述】:

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

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

这没用,我有一个很长的清单。

【问题讨论】:

    标签: r list function subset apply


    【解决方案1】:

    试试这个:

    > 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
    > 
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-19
      • 2014-08-05
      • 2018-07-15
      • 2019-03-27
      • 1970-01-01
      • 2019-01-14
      • 2020-08-14
      相关资源
      最近更新 更多