我需要创建一个" N"长度为" L"从数字开始" B" 。如果我指定N = 3,则L = 4且B = 5。我需要一个以下三个向量的列表。
5 ,6,7,8,
9,10,11,12
13,14,15,16
我可以一个接一个地手动完成,但我有时会创建20或30个矢量来创建不同的长度。 如果有人能帮我一把,我将不胜感激。
干杯 卡洛斯
答案 0 :(得分:2)
如果您对matrix
作为输出感到满意......
N <- 3
L <- 4
B <- 5
x <- seq(from = B, to = B + N * L - 1)
y <- matrix(x, nrow = N, byrow = TRUE)
y
# [,1] [,2] [,3] [,4]
# [1,] 5 6 7 8
# [2,] 9 10 11 12
# [3,] 13 14 15 16
通过转置和data.frame来列出矩阵......
as.list(as.data.frame(t(y)))
# $V1
# [1] 5 6 7 8
#
# $V2
# [1] 9 10 11 12
#
# $V3
# [1] 13 14 15 16
我以这种方式展示它,部分原因是因为我从来没有喜欢过数字强制进行冒号,当然还有其他方法可以解决这个问题。如果您设置y <- matrix(x, nrow = L)
,则可能会移除转置。并删除as.list
,因为从技术上讲,data.frame
是一个列表。
as.data.frame(y)
# V1 V2 V3
# 1 5 9 13
# 2 6 10 14
# 3 7 11 15
# 4 8 12 16
答案 1 :(得分:1)
您可以使用split()
获取列表输出。
split(seq(B, B + L*N - 1), (1:(L*N)-1) %/% N)