问题描述
我是 R 的新手,我正在从多个运行不同样本大小的 MLE 获取输出值表。 这是我的代码:
library(fitdistrplus)
library(actuar)
set.seed(1234)
#Generating Sample1 and saved in a list
n <- c(25,50,100,250,500)
mean <- 10
sd <- 1
#generate a list of list of 25 zeros,50 zeros...
Sample1.list <- list(n25=rep(0,25),n50=rep(0,50),n100=rep(0,100),n250=rep(0,250),n500=rep(0,500))
MLE_Sample1 <- list(rep(c(0,0),times=length(n)))
for (i in seq_along(n)) {
Sample1 <- rlnorm(n[i],meanlog=mean,sdlog=sd)
Sample1.list[[i]] <- Sample1
MLE.lnorm <- mledist(Sample1,"lnorm")
estimate <- MLE.lnorm$estimate
MLE_Sample1[[i]] <- estimate
}
现在,列表 'MLE_Sample1 包含所有 MLE 输出(即两个对数正态参数估计) 对于每个样本,我想将它们作为数据框或表格呈现在一个唯一的对象中,并将矢量名称作为标题。不幸的是,我找不到办法做到这一点。我试图在这里和 R-guides 上查看不同的来源,但我没有找到任何东西,这很奇怪,因为对我来说这似乎是 R 中的基本操作。 有谁知道如何处理? 与往常一样,任何帮助将不胜感激。 谢谢
解决方法
如何使用 data.frames 列表然后 rbindlist
它们(data.table
函数)
library(fitdistrplus)
library(actuar)
library(data.table)
set.seed(1234)
#Generating Sample1 and saved in a list
n <- c(25,50,100,250,500)
mean <- 10
sd <- 1
#generate a list of list of 25 zeros,50 zeros...
Sample1.list <- list(n25=rep(0,25),n50=rep(0,50),n100=rep(0,100),n250=rep(0,250),n500=rep(0,500))
MLE_Sample1 <- list(rep(c(0,0),times=length(n)))
for (i in seq_along(n)) {
Sample1 <- rlnorm(n[i],meanlog=mean,sdlog=sd)
Sample1.list[[i]] <- Sample1
MLE.lnorm <- mledist(Sample1,"lnorm")
estimate <- MLE.lnorm$estimate
MLE_Sample1[[i]] <- as.data.frame(t(estimate))
}
rbindlist(MLE_Sample1)
meanlog sdlog
1: 9.758218 0.9048491
2: 9.773453 1.0790497
3: 10.052040 0.8846443
4: 10.035170 1.0340745
5: 9.954018 0.9791639