【问题标题】:How to combine the outputs in a single data frame in r?如何将输出组合到 r 中的单个数据框中?
【发布时间】:2018-01-03 20:42:47
【问题描述】:

我有来自 R 中三个不同引导组的三个输出。

Bootstrap Statistics 的结果生成为 original、bias 和 std。每个组的错误值。

是否可以定义一个函数将所有结果放在一个数据框中?

y <- rgamma(30,1,1) + rnorm(30,0,0.01)
y60 <- rgamma(60,1,1) + rnorm(60,0,0.01)
y100 <- rgamma(100,1,1) + rnorm(100,0,0.01)
minusL <- function(params, data) {
-sum(log(dgamma(data, params[1], params[2])))
}
fit <- nlm(minusL, c(1,1), data=y)
fit
gammamedian<-function(data) {
fit <- nlm(minusL, c(1,1), data=data)
qgamma(.5, fit$estimate[1], fit$estimate[2])
}
gengamma <- function(data, params){
rgamma(length(data), params[1], params[2])}
library(boot)
results_y <- boot(y, gammamedian, R=100, sim="parametric", ran.gen=gengamma,    
mle=fit$estimate)
results_y
results_y60 <- boot(y60, gammamedian, R=100, sim="parametric",   
ran.gen=gengamma, mle=fit$estimate)
results_y60
results_y100 <- boot(y100, gammamedian, R=100, sim="parametric",   
ran.gen=gengamma, mle=fit$estimate)
results_y100

【问题讨论】:

  • 简短回答,是的,有可能。
  • 这听起来很棒。你能再解释一下吗?
  • 您尝试过什么吗?你到底在哪里卡住了?对于那些看起来只是“为我做这个”请求而没有提出特定编程问题的问题,我们不屑一顾。
  • 还请清楚您感兴趣的结果 - 如果您查看str(results_y100),那里有很多。你到底想抽出什么并与其他人结合?

标签: r dataframe statistics-bootstrap


【解决方案1】:

请参阅函数 boot 的文档(例如:help("boot"))。您可以在名为“值”的部分中找到函数的所有输出值的名称和描述。您可以使用[] 或$ 访问它们(例如:results_y100$t0 或results_y100["t0"])。您可以选择您感兴趣的并将它们组合成一个数据框,例如这样:

将所有感兴趣的输出放到一个列表中:

my_list <- list(results_y = boot(y, gammamedian, R=100, sim="parametric", ran.gen=gengamma, mle=fit$estimate),
results_y60 = boot(y60, gammamedian, R=100, sim="parametric",ran.gen=gengamma, mle=fit$estimate),
results_y100 = boot(y100, gammamedian, R=100, sim="parametric", ran.gen=gengamma, mle=fit$estimate))

定义从所有列表元素中提取您感兴趣的值的函数:

get_val <- function(val) unlist(sapply(my_list, function(X) X[val]))

使用此函数创建数据框:

my_df <- data.frame(t0 = get_val("t0"),
            R = get_val("R"))
rownames(my_df) <- names(my_list)
my_df

【讨论】:

    猜你喜欢
    • 2013-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-04
    • 2022-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多