完全不要从@JeremyS 的答案中删除。他的答案正是你想要的。但是,如果您继续创建没有循环的函数,您可以通过尝试apply 函数并使用您的函数创建对象(并且可能在此过程中给您的老师留下深刻印象)来进一步超越最低限度。
这里有几个例子。
> createVector3 <- function(label, n) {
res <- paste(label, 1:n, sep = " ")
return(res)
}
> createVector3("label", 5)
## [1] "label 1" "label 2" "label 3" "label 4" "label 5"
> sapply(c("lab", "label", "variable"), function(x) createVector3(x, 5))
## lab label variable
## [1,] "lab 1" "label 1" "variable 1"
## [2,] "lab 2" "label 2" "variable 2"
## [3,] "lab 3" "label 3" "variable 3"
## [4,] "lab 4" "label 4" "variable 4"
## [5,] "lab 5" "label 5" "variable 5"
> mapply(createVector3, c("lab", "label", "variable"), 1:3)
## $lab
## [1] "lab 1"
## $label
## [1] "label 1" "label 2"
## $variable
## [1] "variable 1" "variable 2" "variable 3"
> mat <- matrix(c(1:30), nrow = 5, ncol = 3)
> colnames(mat) <- createVector3("Col", 3)
> rownames(mat) <- createVector3("Row", 5)
> mat
## Col 1 Col 2 Col 3
## Row 1 1 6 11
## Row 2 2 7 12
## Row 3 3 8 13
## Row 4 4 9 14
## Row 5 5 10 15