【发布时间】:2017-11-22 00:24:07
【问题描述】:
我是 R 新手,目前正在学习创建 for 循环。
我想要做的是创建 6 个具有类似结构的矩阵(唯一的区别是行“a”随矩阵的数量而变化):
matrix1<- matrix(nrow=5, ncol=5, dimnames= list(c("a", "b", "c", "d", "e")
for(i in 1:5){
matrix1[1,]= 1
matrix1[2,]= round(rpois(5,1), digits=0)
matrix1[3,]= round(rpois(5,1), digits= 0)
matrix1[4,]= round(rnorm(5, 50, 25), digits= 0)
matrix1[5,]= round(rnorm(5, 50, 25), digits= 0)
}
有没有使用 for 循环而不是单独执行此操作的有效方法?
我也考虑过创建 6 个 5*5 的矩阵,填充 NA 值,然后用所需的值填充这些矩阵,但我不知道该怎么做。
如果你能帮助我,那就太好了! 谢谢!
【问题讨论】:
-
写一个
x的函数做矩阵,然后做lapply(values_for_x, fun)?请注意,最好有一个矩阵列表,而不是在matrix1、matrix2、...等名称中嵌入矩阵编号。 -
但是这个函数怎么写呢?能给我举个例子吗?
-
fun <- function(x){ your_code_here_over_multiple_lines }在花括号内,您可以像上面那样编写代码,确保它使用函数参数(x或任何您想调用的)来生成“a”行不同,如你所愿。
标签: r for-loop matrix dataframe