r - 如何从 R 输出中绘制直方图?
问题描述
我正在尝试从不是数据框的 R 输出中绘制直方图。以下是我的代码和输出。
x <- replicate(1000,
{y <- rpois(200, 1)
{lambda0 <- 1
for(i in 1:1)
{
if( i == 1 ) cat( sprintf("%15s %15s %15s %15s\n", "LogL", "Score", "Information", "New Estimate"))
logL <- sum((-lambda0) + y*(log(lambda0)))
score <- sum((y/lambda0)-1)
information <- sum(y/(lambda0)^2)
lambda1 <- lambda0 + score/information
cat( sprintf("%15.4f %15.4f %15.4f %15.5f\n", logL, score, information, lambda1))
lambda0 <- lambda1
}
}
})
下面是我的输出
我正在尝试从输出中获取新的估计并创建直方图。你能帮忙吗?
谢谢你。
解决方案
您需要在循环期间存储 New Estimate 的值。这样,您可以在循环完成后检索结果。通常在使用循环时,您预先指定一个变量,您可以在其中保存每次迭代的结果。例如:
numbers <- 1:3
result <- list(length = length(numbers)
for (i in seq_along(numbers){
result[[i]] <- numbers[[i]] + 1
}
在此示例中,有一个包含三个数字的向量,您希望将每个数字加一并保存结果。您可以通过创建一个长度为 3 的列表来做到这一点(添加长度更好,但不是必需的),并且对于每次i
迭代,您将结果保存在i
列表的第 th 元素中。
完成循环后,您可以从result
变量中检索结果。i
您可以使用方括号检索第th 结果: result[[i]]
。
推荐阅读
- php - Laravel 空白推荐人
- java - Hibernate:按条件分组
- selenium - Limit chrome headless CPU and memory usage
- haskell - 为什么列表 Applicative 实例不执行一对一的应用程序?
- c# - Xamarin,获取通话时间,然后将其显示在 XAML 页面中
- c# - Must "private readonly int" be thread safe when used in multi-thread App?
- java - 如何比较数组的相反索引值并根据嵌套for循环的条件删除?
- dataframe - 如何仅使用 Pyspark ml 规范化数值变量?
- airflow - apache气流为DAG文件夹中的所有脚本定义数据
- playframework-2.6 - 播放 2.6 Inject JPAApi error "No Persistence provider for EntityManager named defaultPersistenceUnit"