存储fitdist的结果

时间:2012-08-22 17:20:10

标签: r

我正在对我的数据进行分布拟合分析。我尝试了5种不同的发行版,并且我希望将每个结果存储在数组或矩阵中。 所以我使用fitdistrplus软件包的fitdist功能,一切顺利,但我不知道如何保存每个结果。这是一个新手问题,但我已经多次搜索过,没有找到有用的结果。

当前代码:

for loop
    .....
    params = fitdist( data, dist,method="mle")
    print( params )
    summary( params ) 
    plot( params )

所以我需要这样的东西:

for loop
    .....
    params = fitdist( data, dist,method="mle")
    result1[i]<-print( params ) #Can I save a print (graphics)?
    result2[i]<-summary( params ) 
    result3[i]<-plot( params )

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

(你应该提供一个代表'数据'和'dist'的例子。)

您需要预定义结果项,因为如果resutl1[i]<-尚不存在,R将不会自动接受循环内的result1。这假定'data'和'distr'是fitdistr的适当类型的列表或向量。您可能需要在fitdistr的参数中使用“[[”而不是“[”(或组合)。

result1<-result2<-result3<-list()
for (i in seq_along(data) ) 
   {
    params = fitdist( data[i], dist[i], method="mle")
    result1[i]<-print( params )
     #Can I save a print (graphics)?
     # You can save lattice and ggplot2 graphics as list objects but I think `fitdistr`
     # may use base graphics which cannot be saved unless you use a file graphics device
    result2[i]<-summary( params ) 
    result3[i]<-plot( params )
   }

您将使用results[[i]]而不是results[i]来访问结果对象,因为“[[”会提取列表中的实际值,而results[i]会为您提供包含一个元素的子列表。如果可能更好(更紧凑,最终更灵活),只需保存“params”对象,以后可以根据需要应用summary()print()

答案 1 :(得分:0)

一开始就使用result1[i]<-matrix()