是否可以在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
我不确定我明白这是什么意思......
答案 0 :(得分:1)
您可能需要查看“值”部分下的?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")
}
}