4

x = c(2:19) で、x から 20 までの一連のシーケンスを作成したいと考えています。私は本質的にこれが欲しいのですが、このようにする必要はありません:

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)
}

何か助けはありますか?

4

2 に答える 2

16
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)]
于 2012-09-11T18:11:33.520 に答える
2

aグローバル変数を割り当てるためのディコアの答えを拡張しますr(ただし、リストに保存するよりもそれが望ましい理由はわかりません):

mapply(FUN=assign,x=letters[1:18],value=sapply(2:19, seq, to = 20),MoreArgs=list(envir=.GlobalEnv))

与えます:

> 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
于 2012-09-11T19:03:04.520 に答える