我想创建几个矩阵并将通过函数获得的值自动分配给特定的行。我将举例说明我到目前为止所做的尝试:
EXAMPLE1<-matrix(ncol=4, nrow=16)
EXAMPLE2<-matrix(ncol=4, nrow=16)
EXAMPLE3<-matrix(ncol=4, nrow=16)
EXAMPLE4<-matrix(ncol=4, nrow=16)
for(i in 1:16){
for(j in 1:4){
paste0("EXAMPLE",j, "[",i,",","]")<- c(1:4)
}
}
和
for(i in 1:16){
for(j in 1:4){
get(paste0("EXAMPLE",j)[i,]<- c(1:4)
}
}
但返回“赋值目标扩展为非语言对象”。所以我尝试了
for(i in 1:16){
for(j in 1:4){
assign(paste0("EXAMPLE",j, "[",i,",","]"), c(1:4))
}
}
这不会返回错误,但值不会写入矩阵。
起初矩阵是空的
[,1] [,2] [,3] [,4]
[1,] NA NA NA NA
[2,] NA NA NA NA
[3,] NA NA NA NA
[4,] NA NA NA NA
并且在执行一个循环之后(i = 1)我将所有示例矩阵都填充为1行(并且在第二-第二行填充之后,这样当循环结束时,我将拥有一个充满数字的示例矩阵。)。
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
[2,] NA NA NA NA
[3,] NA NA NA NA
[4,] NA NA NA NA
关键是,我不知道如何为矩阵行赋值,因为我通过粘贴函数传递矩阵名称。如果我想将其名称作为字符串,如何将值分配给矩阵中的特定行?任何帮助都会很棒。谢谢
...版...对不起,我不是很清楚。正如我所提到的,我想将函数的结果(恰好与我的矩阵具有相同的列数)写入矩阵行。每行都会从应用于不同观察的函数中获取结果。我想将几个函数应用于同一个变量,所以我有几个矩阵用于不同函数的结果(列号不同,名称不同)。我对矩阵进行编号和命名的方式是最容易跟踪结果并在以后进行比较的方式。上面我只给出了一个问题示例,即我不能为一行矩阵赋值,因为我将矩阵的名称作为字符串给出(我这样做是因为否则会有很多编号要做)。所以总的来说我希望能够做到
EXAMPLEj[i,]<-SomeFunctionResult
j 在哪里 1 到 10 或其他一些数字
这就是为什么我使用循环并paste0("EXAMPLE", j)
生成矩阵名称和 i 来表示要使用哪个观察函数以及将结果放在哪一行。矩阵已经创建,但我发现无法将结果传递给矩阵的行。
我是 R(和编程)的新手,所以我可能选择了最糟糕的方法来解决这个问题,并且列表或数组会更容易使用。谢谢你的回复。