如何在 R 中创建 n 个向量
how to create n vectors in R
我想创建 n 个具有相应名称的向量。例如:
n<-1:10
我需要创建相应的向量 x_1, x_2, ..., x_n 。
是否可以使用“for”循环或其他任何方式来做到这一点?例如:
n=1:10
for (i in n) {
paste("x",n[i]) <- 1:9
}
该示例不起作用,但这正是我需要得到的。
感谢您的建议!
试试这个,但要知道它可能会导致比您意识到的更多的问题:
ls()
# character(0)
Vars <- paste("x", 1:10, sep="_")
Vars
# [1] "x_1" "x_2" "x_3" "x_4" "x_5" "x_6" "x_7" "x_8" "x_9" "x_10"
x <- sapply(Vars, assign, value=1:9, envir=environment())
ls()
# [1] "Vars" "x" "x_1" "x_10" "x_2" "x_3" "x_4" "x_5" "x_6" "x_7" "x_8" "x_9"
最好在列表结构(数据框或列表)中创建向量:
X <- replicate(10, list(1:9))
names(X) <- Vars
str(X)
# List of 10
# $ x_1 : int [1:9] 1 2 3 4 5 6 7 8 9
# $ x_2 : int [1:9] 1 2 3 4 5 6 7 8 9
# $ x_3 : int [1:9] 1 2 3 4 5 6 7 8 9
# $ x_4 : int [1:9] 1 2 3 4 5 6 7 8 9
# $ x_5 : int [1:9] 1 2 3 4 5 6 7 8 9
# $ x_6 : int [1:9] 1 2 3 4 5 6 7 8 9
# $ x_7 : int [1:9] 1 2 3 4 5 6 7 8 9
# $ x_8 : int [1:9] 1 2 3 4 5 6 7 8 9
# $ x_9 : int [1:9] 1 2 3 4 5 6 7 8 9
# $ x_10: int [1:9] 1 2 3 4 5 6 7 8 9
lapply()
和 sapply()
函数可以轻松地使用一行代码将函数应用于所有列表部分。您可以使用 X[[1]]
或 X[["x_1"]]
.
访问第一个列表项
我想创建 n 个具有相应名称的向量。例如: n<-1:10 我需要创建相应的向量 x_1, x_2, ..., x_n 。 是否可以使用“for”循环或其他任何方式来做到这一点?例如:
n=1:10
for (i in n) {
paste("x",n[i]) <- 1:9
}
该示例不起作用,但这正是我需要得到的。 感谢您的建议!
试试这个,但要知道它可能会导致比您意识到的更多的问题:
ls()
# character(0)
Vars <- paste("x", 1:10, sep="_")
Vars
# [1] "x_1" "x_2" "x_3" "x_4" "x_5" "x_6" "x_7" "x_8" "x_9" "x_10"
x <- sapply(Vars, assign, value=1:9, envir=environment())
ls()
# [1] "Vars" "x" "x_1" "x_10" "x_2" "x_3" "x_4" "x_5" "x_6" "x_7" "x_8" "x_9"
最好在列表结构(数据框或列表)中创建向量:
X <- replicate(10, list(1:9))
names(X) <- Vars
str(X)
# List of 10
# $ x_1 : int [1:9] 1 2 3 4 5 6 7 8 9
# $ x_2 : int [1:9] 1 2 3 4 5 6 7 8 9
# $ x_3 : int [1:9] 1 2 3 4 5 6 7 8 9
# $ x_4 : int [1:9] 1 2 3 4 5 6 7 8 9
# $ x_5 : int [1:9] 1 2 3 4 5 6 7 8 9
# $ x_6 : int [1:9] 1 2 3 4 5 6 7 8 9
# $ x_7 : int [1:9] 1 2 3 4 5 6 7 8 9
# $ x_8 : int [1:9] 1 2 3 4 5 6 7 8 9
# $ x_9 : int [1:9] 1 2 3 4 5 6 7 8 9
# $ x_10: int [1:9] 1 2 3 4 5 6 7 8 9
lapply()
和 sapply()
函数可以轻松地使用一行代码将函数应用于所有列表部分。您可以使用 X[[1]]
或 X[["x_1"]]
.