我想制作一组从 x 到 20 的序列,其中 x = c(2:19)。我想要这个,本质上,但不必这样做:
a = seq(2, 20)
b = seq(3, 20)
...
q = seq(18, 20)
r = seq(19, 20)
> a
[1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
> b
[1] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
...
> q
[1] 18 19 20
> r
[1] 19 20`
我已经尝试使用 for 循环,但我无法找到替代品:
a = c(2:20)
b = numeric()
for (i in 1:19){
b = seq(a[i]:20)
}
有什么帮助吗?
最佳答案
sapply(2:19, seq, to = 20)
[[1]]
[1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
[[2]]
[1] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
[[3]]
[1] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
[[4]]
[1] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
[[5]]
[1] 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
[[6]]
[1] 7 8 9 10 11 12 13 14 15 16 17 18 19 20
[[7]]
[1] 8 9 10 11 12 13 14 15 16 17 18 19 20
[[8]]
[1] 9 10 11 12 13 14 15 16 17 18 19 20
[[9]]
[1] 10 11 12 13 14 15 16 17 18 19 20
[[10]]
[1] 11 12 13 14 15 16 17 18 19 20
[[11]]
[1] 12 13 14 15 16 17 18 19 20
[[12]]
[1] 13 14 15 16 17 18 19 20
[[13]]
[1] 14 15 16 17 18 19 20
[[14]]
[1] 15 16 17 18 19 20
[[15]]
[1] 16 17 18 19 20
[[16]]
[1] 17 18 19 20
[[17]]
[1] 18 19 20
[[18]]
[1] 19 20
如果要保存对象并为每个元素命名
res <- sapply(2:19, seq, to = 20)
names(res) <- letters[1:length(res)]
关于r - 在 R 中创建一组长度递减的序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12375431/