【发布时间】:2021-09-29 03:39:51
【问题描述】:
我正在尝试创建一个矩阵或数据框,其中矩阵的每一行都将由每个循环的结果填充。事实是我们在每个循环中获得的值的数量是不一样的。那么我该如何做到这一点,我们将首先用循环结果填充列值,而行/行上其余未填充的值将为空。我的 r 代码是
x<-c(9,10,6,17,23,16,27,18,8,11)
K<-7
ash<-matrix(, nrow = K, ncol = max(x))
for (i in 1:K){
aa<-max.col(theta, ties.method="first")==i
ash[i,]<-which(aa==TRUE)
}
一个例子是
a1<-c(1,4,5,7)
> a2<-c(3,6,12,3,45)
> a3<-c(5,9,12,14,3,9,7,2)
> main<-matrix(c(1,4,5,7,NA,NA,NA,NA,3,6,12,3,45,NA,NA,NA,5,9,12,14,3,9,7,2),nrow=3,byrow = TRUE)
> main
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] 1 4 5 7 NA NA NA NA
[2,] 3 6 12 3 45 NA NA NA
[3,] 5 9 12 14 3 9 7 2
所需的矩阵应该看起来像主矩阵,a1、a2、a3 是每个循环的结果。当我手动创建示例“main”时,无法弄清楚如何为您提供完全可生产的输出。
【问题讨论】:
-
@akrun,theta 是参数向量。并且 aain `[<-.data.frame`(`*tmp*`, i, i1, value = c(9L, 10L, 66L, 67L, : new columns would leave holes after existing columns
-
@akrun 编辑了问题。
-
@akrun 很难解释 theta 值,Theta 基本上是 K 行的矩阵,列数是我们从所有循环组合中获得的值的总数。 theta 的每个元素都是一个小数点(概率)。例如,我给出了 (a1, a2, a3) theta 是 3 x 17。因为长度(a1)+长度(a2)+长度(a3)=17。如果仍然令人困惑,请告诉我。
标签: r dataframe for-loop matrix