我正在对我的数据进行分布拟合分析。我尝试了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 )
感谢您的帮助。
答案 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()
!