Составьте список последовательных чисел в R - PullRequest
1 голос
/ 10 марта 2020

Я хочу составить список последовательных чисел, таких как:

 list(1,2,3,4)

Дает список из четырех.

Теперь я не хочу писать все числа, поэтому попробуйте:

 list(1:4)

Дает список длиной четыре.

Если я хочу составить список из четырех без записи всех чисел, какой может быть синтаксис?

Пожалуйста, помогите, спасибо

Ответы [ 3 ]

3 голосов
/ 10 марта 2020

Вы можете использовать as.list(1:4)

as.list(1:4)

[[1]] [1] 1

[[2]] [1] 2

[[3]] [1] 3

[[4]] [1] 4

РЕДАКТИРОВАТЬ

или as.list(seq(4))

EDIT # 2

Вот сравнение скорости с использованием microbenchmark:

microbenchmark(as.list(1:4), as.list(seq(4)), Map(c,1:4), sapply(1:4, list), times=1e6)
Unit: microseconds
              expr   min    lq      mean median     uq      max neval
      as.list(1:4) 1.472 2.088  2.639712  2.314  2.584 32594.44 1e+06
   as.list(seq(4)) 3.934 5.359  6.514579  5.818  6.337 31498.31 1e+06
       Map(c, 1:4) 3.435 5.052  6.243628  5.516  6.041 32628.84 1e+06
 sapply(1:4, list) 6.892 9.358 11.282727 10.009 10.757 34269.70 1e+06
2 голосов
/ 10 марта 2020

Мы могли бы использовать

sapply(1:4, list)
[[1]]
[1] 1

[[2]]
[1] 2

[[3]]
[1] 3

[[4]]
[1] 4
all.equal(sapply(1:4, list), list(1,2,3,4))
[1] TRUE
1 голос
/ 10 марта 2020

Вы можете попробовать код с Map

Map(c,1:4)

таким, что

> Map(c,1:4)
[[1]]
[1] 1

[[2]]
[1] 2

[[3]]
[1] 3

[[4]]
[1] 4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...