gpt4 book ai didi

r - 使用与条目编号相关的模式在 R 中生成列表

转载 作者:行者123 更新时间:2023-12-04 11:19:21 26 4
gpt4 key购买 nike

是否有一种聪明的方法可以使用 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

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

第一个列表用于 ones所以计数是在 1 的步骤中一次整数;因此向量 1,1,1,1,1,1,1,...在条目 [[2]]我们有 twos ,我们正在计算 2开始于 0 ,跳过 1 (编码为 0 )。在 [[3]]我们正在计算 3 's:零、三、六、九等。

最佳答案

以 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)重复。
  • lapplyfunction(i)当我们循环遍历向量时,允许 0 的数量增加。
  • 关于r - 使用与条目编号相关的模式在 R 中生成列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41575907/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com