Применение функции к подмножеству списка с помощью R - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть список, из которого я хотел бы рассчитать log2 первых пяти чисел в каждом векторе в списке.Я очень запутался в списках поднабора при использовании функций применения.

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

Это не сработало, я получил длинный список.

1 Ответ

0 голосов
/ 19 февраля 2019

Попробуйте:

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

Надеюсь, это поможет.

...