将变量保存在 R 中的矩阵中

Save variables in a matrix in R

是否可以在 R 中存储变量..

我必须计算 10*324 fitdist,这个函数的每个输出都必须存储在上面大小的矩阵中?这在 R 中可能吗?

如果是那怎么办,我完全迷路了?

所以我尝试创建一个简单的示例

norm_dist <- as.data.frame(matrix(nrow=3,ncol=3))
data(iris)
for(i in 1:3)
{
  for(j in 1:3)
  {
    print(i)
    print(j)
    if(j==1)
    {
      element = fitdist(data =iris$Petal.Width[1:50*i], distr = "norm")
      norm_dist[i,j] = element
    } 
    if(j==2)
    {
      element = fitdist(data =iris$Petal.Length[1:50*i], distr = "norm")
      norm_dist[i,j] = element
    } 
   if(j==3)
    {
      element = fitdist(data =iris$Sepal.Length[1:50*i], distr = "norm")
      norm_dist[i,j] = element
    } 
  }

}

但是我收到这个错误

Error in `[<-.data.frame`(`*tmp*`, i, j, value = list(estimate = c(0.867771222640304,  : 
  replacement element 4 is a  matrix with 2 rows, needs 1 

我不确定我是否理解它的意思...

您可能需要查看 "Value" 部分下的 ?fitdist 文档。它提到了函数的输出,它是一个包含几个组件的列表。

您想将这些值中的哪一个分配给 norm_dist?例如,如果你想要对数似然,你可以使用 norm_dist[i,j] = element$loglik

如果要存储整个对象,则需要列表而不是 data.frame,例如

norm_dist_res <- list()
for(i in 1:10)
{
    for(j in 1:324)
    {
        norm_dist_res[[paste0(i,"-",j)]] <- fitdist(data=g_all_p$data[1:8000*i, j], distr="norm")
    }
}