MixSIAR贝叶斯混合模型-氮素来源-R语言实现流程

MixSIAR贝叶斯混合模型-氮素来源-R语言实现流程

建议用windows环境,Mac环境R的版本只有最新版可以下载,解决error很麻烦

环境的安装

R、R Studio

直接去官网下载(R语言建议下载R4.2.3,最新和太久的版本都容易报错)

https://mirrors.tuna.tsinghua.edu.cn/CRAN/

选择download for windows,进入下载页面,选择Previous releases,找4.2.3版本

Rstudio的版本可以下载最新

安装吉布斯采样器JAGS:https://sourceforge.net/projects/mcmc-jags/files/

直接下载安装

把上面的都下载完成之后,建议先打开R,第一次打开会让你选择源,选择国内的源对之后安装package很方便

然后关闭R,打开R studio,在Tools菜单里Install package安装mixsiar包,最简便的方法

MixSIAR里有一些实例代码,可以直接拿过来修改使用,下面是我使用的代码:

需要先准备三个csv文件,source、consumer、discrimination,放在一个文件夹下、

source: 来源的数据可以根据自己研究区去查看相关论文数据得到

consumer:是自己的数据

discirmination:和source文件的行列一样,去掉n那一列,一般把值全部设为0即可

r 复制代码
# Geese example (concentration dependence)

getwd() #得到目前的路径
setwd("  ") #设置当前路径

library(MixSIAR)

# Load mix data
mix <- load_mix_data(filename="nitrate_consumer202345.csv",
                     iso_names=c("d18O","d15N"), #和自己consumer文件的顺序对应上
                     factors="id",
                     fac_random=FALSE,
                     fac_nested=FALSE,
                     cont_effects=NULL)

# Load source data
source <- load_source_data(filename="nitrate_sources-1.csv",
                           source_factors=NULL,
                           conc_dep=FALSE,
                           data_type="means",
                           mix)

# Load discrimination/TDF data
discr <- load_discr_data(filename="nitrate_discrimination-1.csv", mix)

# Make isospace plot
plot_data(filename="isospace_plot",
          plot_save_pdf=TRUE,
          plot_save_png=TRUE,
          mix,source,discr)

# Calculate standardized convex hull area
library(splancs)
if(mix$n.iso==2) calc_area(source=source,mix=mix,discr=discr)

# Plot your prior
#plot_prior(alpha.prior=1,source)


# Define model structure and write JAGS model file
model_filename <- "MixSIAR_model.txt"
resid_err <- FALSE
process_err <- TRUE
write_JAGS_model(model_filename, resid_err, process_err, mix, source)

# Run the JAGS model ("test" first, then "short")
# jags.1 <- run_model(run="test", mix, source, discr, model_filename, alpha.prior=1,resid_err,process_err)
jags.1 <- run_model(run="normal", mix, source, discr, model_filename, alpha.prior=1)
#测试代码的时候选择test模式,要出数据选择normal或者long

#设置最大输出行数,当输出过多数据的时候需要设置
options(max.print=10000)
# Process diagnostics, summary stats, and posterior plots
output_JAGS(jags.1, mix, source)

最后可以讲鼠标光标放在第一行,逐行的run,便于解决报错和观察输出结果,最后的输出结果制作氮素来源贡献图时可以选择Mean均值那一列数据。

相关推荐
小师兄吃牛肉17 小时前
什么是R语言?如何快速学习R语言
开发语言·学习·r语言
喆星时瑜2 天前
Win10/11 安装 R 与 RStudio 详细图文教程
开发语言·r语言·安装
喆星时瑜2 天前
R语言基础语法入门
开发语言·r语言
喆星时瑜2 天前
R语言向量语法的详细教程
开发语言·r语言
临床数据科学和人工智能兴趣组4 天前
在R语言中, 使用 as.factor() 函数转换数值型变量
开发语言·r语言
babe小鑫14 天前
信息与计算科学专业应届生面试 怎么证明自己能解决业务问题
学习·r语言·excel
深兰科技15 天前
深兰科技受邀参与第二届中国(南宁)—东盟人工智能场景应用对接会,深化AI国际合作
人工智能·qt·r语言·scala·symfony·智能机器人·深兰科技
赵钰老师16 天前
基于ArcGIS Pro、R、INVEST等多技术融合下生态系统服务权衡与协同动态分析
python·arcgis·数据分析·r语言
User_芊芊君子20 天前
RStudio 鸿蒙 PC 适配全记录:以 Qt 原生工作区承载嵌入式 R
qt·r语言·harmonyos
临床数据科学和人工智能兴趣组20 天前
399元现在超值!学R语言,订阅我们专栏就够了,包括了所有的内容,不断更新!
人工智能·数据挖掘·r语言·r语言-4.2.1·临床研究