当前位置:  开发笔记 > 编程语言 > 正文

在R中生成具有与条目号相关的模式的列表

如何解决《在R中生成具有与条目号相关的模式的列表》经验,为你挑选了1个好方法。

是否有一种聪明的方法可以使用或许使用lapply()其他更多可推断的程序来生成R中的下一个列表?

ones   =   c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
twos   =   c(1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1)
threes =   c(1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0)
fours  =   c(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0)
fives  =   c(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)
l = list(ones, twos, threes, fours)

[[1]]
 [1] 1 1 1 1 1 1 1 1 1 1 1

[[2]]
 [1] 1 0 1 0 1 0 1 0 1 0 1

[[3]]
 [1] 1 0 0 1 0 0 1 0 0 1 0

[[4]]
 [1] 1 0 0 0 1 0 0 0 1 0 0

这些对应于生成分区函数的多项式系数.

第一个列表是for ones,因此计数一次是1整数; 因此向量1,1,1,1,1,1,1,...在条目中[[2]]我们有twos,并且我们2从开始计数0,跳过1(编码为0).在[[3]]我们通过计算3零,三,六,九等:的



1> lmo..:

基础R中相当简单的方法是

lapply(seq(0L, 5L), function(i) rep(c(1L, integer(i)), length.out=11L))
[[1]]
 [1] 1 1 1 1 1 1 1 1 1 1 1

[[2]]
 [1] 1 0 1 0 1 0 1 0 1 0 1

[[3]]
 [1] 1 0 0 1 0 0 1 0 0 1 0

[[4]]
 [1] 1 0 0 0 1 0 0 0 1 0 0

[[5]]
 [1] 1 0 0 0 0 1 0 0 0 0 1

seq(0L, 5L)产生向量0到5,等价seq_len(5L)-1L,这对于创建大向量更快.

c(1L, integer(i))产生0-1向量的内部重复部分,rep使用length.out参数根据所需长度(此处为11)重复.

lapply并且function(i)当我们遍历向量时允许0的数量增加.

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有