首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中列出一个连续数字列表

在R中列出一个连续数字列表
EN

Stack Overflow用户
提问于 2020-03-10 10:16:36
回答 3查看 1.7K关注 0票数 1

我想列出这样的连续数字:

代码语言:javascript
复制
 list(1,2,3,4)

列出四个人的名单。

现在我不想写所有的数字,所以试着:

代码语言:javascript
复制
 list(1:4)

给出了四个长度的列表。

如果我想列一个四人的列表而不写所有的数字,那么语法是什么呢?

请帮忙,谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-03-10 10:21:02

您可以使用as.list(1:4)

代码语言:javascript
复制
as.list(1:4)

[1] 1

[2] 2

[3] 3

[4] 4

编辑

as.list(seq(4))

编辑#2

下面是使用microbenchmark的速度比较

代码语言:javascript
复制
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
票数 4
EN

Stack Overflow用户

发布于 2020-03-10 10:22:18

我们可以用

代码语言:javascript
复制
sapply(1:4, list)

[1] 1 [2] 2 [3] 3 [4] 4

代码语言:javascript
复制
all.equal(sapply(1:4, list), list(1,2,3,4))
[1] TRUE
票数 2
EN

Stack Overflow用户

发布于 2020-03-10 11:28:15

您可以使用Map进行代码测试。

代码语言:javascript
复制
Map(c,1:4)

这样的话

代码语言:javascript
复制
> Map(c,1:4)
[[1]]
[1] 1

[[2]]
[1] 2

[[3]]
[1] 3

[[4]]
[1] 4
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60615526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档