r - 如何从 EcosimR 输出的摘要中提取 SES
问题描述
我正在尝试从摘要函数的输出中自动提取标准化效应大小,以便我可以自动绘制下游。
具体来说,我正在总结输出,cooc_null_model(x=co-occurrence_data)
我想输出“标准化效果大小 (SES)”,这是打印结果中的最终值。
我该怎么做呢?
帮助部分的示例代码:
library(EcoSimR)
## Run the null model
finchMod <- cooc_null_model(dataWiFinches, algo = "sim9", nReps = 10000, burn_in = 500)
## Summary and plot info
summary(finchMod)
我希望它会是这样的:finchMod$Standardized_Effect_Size
但我似乎无法通过这些方式找到目标值。
任何和所有的帮助表示赞赏!
解决方案
这是我为找出您感兴趣的统计数据 SES 所做的工作的说明。
第一步:
运行模型并检查
class(finchMod)
#[1] "coocnullmod"
str(finchMod)
#List of 13
# $ Obs : num 3.79
# $ Sim : num [1:10000] 2.59 2.59 2.59 2.59 2.6 ...
# $ Elapsed.Time : chr "1.7 secs"
# $ Time.Stamp : chr "Fri Jun 22 18:35:52 2018"
# $ Metric : chr "c_score"
# $ Algorithm : chr "sim9"
# $ N.Reps : num 10000
# $ SaveSeed : logi FALSE
# $ RandomSeed : NULL
# $ Randomized.Data: num [1:17, 1:19] 0 0 0 0 0 0 0 1 0 1 ...
# ..- attr(*, "dimnames")=List of 2
# .. ..$ : NULL
# .. ..$ : chr [1:19] "Cuba" "Hispaniola" "Jamaica" "Puerto_Rico" #...
# $ Data : num [1:17, 1:19] 0 0 0 0 1 0 0 0 0 1 ...
# ..- attr(*, "dimnames")=List of 2
# .. ..$ : NULL
# .. ..$ : chr [1:19] "Cuba" "Hispaniola" "Jamaica" "Puerto_Rico" #...
# $ burn.in : num 500
# $ burn.in.metric : num [1:500] 3.68 3.68 3.65 3.65 3.65 ...
# - attr(*, "class")= chr "coocnullmod"
如您所见,没有 SES。这意味着它的值是由方法summary.coocnullmod
或该方法调用的某个函数计算的。例如,参见R FAQ 8.1。
第二步:
检查代码summary.coocnullmod
。在 R 提示符下,不带括号的函数名称将打印其主体。
summary.coocnullmod
Error: object 'summary.coocnullmod' not found
所以使用getAnywhere
.
getAnywhere(summary.coocnullmod)
A single object matching ‘summary.coocnullmod’ was found
It was found in the following places
registered S3 method for summary from namespace EcoSimR
namespace:EcoSimR
with value
function (object, ...)
{
nullmodObj <- object
[...etc...]
[...last code line...]
cat("Standardized Effect Size (SES): ", format((nullmodObj$Obs -
mean(nullmodObj$Sim))/sd(nullmodObj$Sim), digits = 5),
"\n")
}
<environment: namespace:EcoSimR>
第三步:
因此,现在您拥有了自动计算 SES 所需的一切。
ses <- function(object){
(object$Obs - mean(object$Sim))/sd(object$Sim)
}
ses(finchMod)
#[1] 5.69756
推荐阅读
- angular - 忽略管道延迟的 Http 发布请求
- java - 将前缀转换为后缀
- html - 请求 GET/POST 到 google-sheet
- scala - Mill 任务如何更新环境变量,以便以后运行的任务可以看到更新后的值?
- android - 文件选择和无选择
- laravel - 根据用户角色显示侧边栏菜单元素,使用“yaminncco/vue-sidebar-menu”包
- python - 只包含整数的集合是否有序?
- javascript - 根据语言选择更改变量定义?
- json - JSON 作为 ASP.Net Core 3.1 控制器中的数据类型
- javascript - php服务器请求方法没有改变