-2

我正在对我的数据进行分布拟合分析。我正在尝试 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 )

谢谢您的帮助。

4

2 回答 2

2

(您应该提供一个示例来说明您如何表示“数据”和“分布”。)

您需要预定义结果项,因为resutl1[i]<-如果循环result1中不存在,R 将不会自动接受。这假设 '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()需要应用这些对象。

于 2012-08-22T18:09:32.007 回答
0

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

于 2012-08-22T18:08:50.227 回答