小编Phi*_*tin的帖子

从metafor中的混合效果多级模型得到R平方

我在R中对森林的特定处理进行了荟萃分析.对于这个模型,我需要拟合随机效应来解释方法的研究差异和站点年龄的变化之间,因为这两者都是混淆变量,我对调查由它们引起的变化没有明确的兴趣.

但是,据我所知,[metfor]当你有一个多级模型时,包不允许你计算一个R平方类型的统计量.

无论如何,在这里更清楚地描述我的问题是一个模拟数据集

Log<-data.frame(Method=rep(c("RIL","Conv"),each=10),
     RU=runif(n=20,min=10,max=50),SDU=runif(n=20,5,20),
     NU=round(runif(n=20,10,20),0))
Log$Study<-rep(1:4,each=5)
Log$Age<-rep(c(0,10,15,10),times=5)
RIL<-(Log$RU-(Log$RU*(abs(rnorm(n=20,mean=.6,sd=0.1)))))+(0.5*Log$Age)
Conv<-(Log$RU-(Log$RU*(abs(rnorm(n=20,mean=.2,sd=0.1)))))+(0.2*Log$Age)
Log$RL<-ifelse(Log$Method=="RIL",RIL,Conv)
Log$SDL<-Log$SDU
Log$NL<-Log$NU

#now we perform a meta-analysis using metafor
require(metafor)
ROM<-escalc(data=Log,measure="ROM",m2i=RU,
sd2i=SDU,n2i=NU,m1i=RL,sd1i=SDL,n1i=NL,append=T)
Model1<-rma.mv(yi,vi,random=~(1|Study)+(1|Age),method="ML",data=ROM)
summary(Model1)
forest(Model1)
Run Code Online (Sandbox Code Playgroud)

上述模型是一个空模型,用于观察截距在统计上是否与零显着不同.就我们而言.但是,我还想看看治疗方面的差异是否描述了我在森林情节中看到的效果大小的差异,你可以在这里看到 在此输入图像描述

所以我运行这个模型:

Model2<-rma.mv(yi,vi,mods=~Method,random=~(1|Study)+(1|Age),method="ML",data=ROM)
summary(Model2)
Run Code Online (Sandbox Code Playgroud)

哪个看起来不错.

    Multivariate Meta-Analysis Model (k = 20; method: ML)

  logLik  Deviance       AIC       BIC      AICc  
  0.4725   19.8422    7.0550   11.0380    9.7217  

Variance Components: 

outer factor: Age   (nlvls = 3)
inner factor: Study (nlvls = 4)

            estim    sqrt  fixed
tau^2      0.0184  0.1357     no
rho        1.0000             no

Test for Residual Heterogeneity: 
QE(df …
Run Code Online (Sandbox Code Playgroud)

r mixed-models

6
推荐指数
1
解决办法
2371
查看次数

在使用两个变量进行预测时停止外推

选择模型后,我的最佳模型有两个连续变量和一个交互项.

我的数据如下:

df<-structure(list(Height_RR = c(1.09861228866811, -0.143100843640673, 
                             -0.990398704027877, -0.990398704027877, 0.0800427076735365, 0.916290731874155, 
                             1.04982212449868, 0.430782916092454, 0.575364144903562, 0.0953101798043248, 
                             -0.405465108108164, 0.132489183046079, 0.117783035656383, 1.04982212449868, 
                             -0.916290731874155, 1.20397280432594, -0.356674943938732, 0.287682072451781, 
                             -0.356674943938732, 0.287682072451781, -0.356674943938732, 0.287682072451781, 
                             -0.318387168583869, -0.318387168583869, -0.318387168583869, -0.356674943938732, 
                             -0.393042588109607, -0.485507815781701, -0.405465108108164, -0.441832752279039, 
                             0.42744401482694, 0.510825623765991, 1.04982212449868, 0.847297860387204, 
                             -0.356674943938732), 
               CWD = c(-173.850331373113, -1063.65743501896, 
               -1152.77456298827, -1200.14062275391, -1191.1454796875, -154.366681649412, 
              -160.237513231871, -148.917478721144, -655.155005728001, -1081.17124999999, 
              -192.437500000001, -664.538976252586, -540.755930464004, -230.945841787738, 
               -632.705104201392, -159.376784299775, -686.792144988283, -686.792144988283, 
               -686.792144988283, -686.792144988283, -686.792144988283, -686.792144988283, 
               -681.113600988285, -681.113600988285, -681.113600988285, -203.026923561875, 
               -32.6625046554887, -499.426709860029, -190.121159505859, -871.942483370128, 
              -988.569593505865, -248.140000031999, -165.422048285183, -165.422048285183, 
                -165.422048285183), 
              yi = c(0.201673327454905, 0.374187870755073, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

5
推荐指数
1
解决办法
102
查看次数

从html表中抓取数据

我正在尝试使用rvest包从CABI入侵物种纲要中提取入侵植物物种位置的数据.

看了几个教程,我发现我应该能够很容易地从表中抓取数据.但是,我一直遇到困难.

假设我想要品种Brassica tournefortii的位置数据.我应该能够使用此代码,该代码使用此处概述的技术来获取物种记录位置的详细信息.

 library(rvest)
 isc<-read_html("http://www.cabi.org/isc/datasheet/50069")
 isc %>% 
 html_node("#toDistributionTable td:nth-child(1)") %>%
 html_text()
Run Code Online (Sandbox Code Playgroud)

但是,运行此代码我收到错误

Error: No matches
Run Code Online (Sandbox Code Playgroud)

我是webscraping的新手.我做错了什么吗?

html r web-scraping rvest

5
推荐指数
1
解决办法
209
查看次数

在R中绘制一个双变量地图

我正在尝试绘制从R中的地图上的栅格数据集中获取的两个变量,以产生看起来像这样的东西:

在此输入图像描述

然而,理想情况下,我希望从左下角到右上角的比例为灰度(从浅灰色到黑色),从而突出显示两个变量几乎没有差异的区域.

到目前为止,这是我到目前为止使用的包装彩色板:

#load packages
require(raster)
require(colorplaner)
require(ggplot2)


#here's some dummy data
r1<- raster(ncol=10, nrow=10)
set.seed(0)
values(r1) <- runif(ncell(r1))
r2<- raster(ncol=10, nrow=10)
values(r2) <- runif(ncell(r2))

#here I create a grid with which I can  extract information on the raster datasets
grid<-raster(ncol=10, nrow=10)
grid[] <- 1:ncell(grid)
grid.pdf<-as(grid, "SpatialPixelsDataFrame")
grid.pdf$r1<-(extract(r1,grid.pdf))
grid.pdf$r2<-(extract(r2,grid.pdf))

#here I convert the grid to a dataframe for plotting in ggplot2
grid.df<-as.data.frame(grid.pdf)
ggplot(data=grid.df,aes(x,y,fill=r1,fill2=r2))+geom_raster()+scale_fill_colourplane("")
Run Code Online (Sandbox Code Playgroud)

这给了我这个:

在此输入图像描述 这个默认的colourscale并不真正适合我的需求 - 我更喜欢这个从这个网站看起来像这样的比例:

在此输入图像描述

但是我发现修改函数中的colourscheme很棘手 scale_fill_colourplane

最接近我想要的颜色是我想要的:

ggplot(data=grid.df,aes(x,y,fill=r1,fill2=r2))+
geom_raster()+
scale_fill_colourplane(name = "",na.color = …
Run Code Online (Sandbox Code Playgroud)

r raster geospatial ggplot2 r-raster

3
推荐指数
1
解决办法
566
查看次数

标签 统计

r ×4

ggplot2 ×2

geospatial ×1

html ×1

mixed-models ×1

r-raster ×1

raster ×1

rvest ×1

web-scraping ×1