Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中二元经验累积分布函数的编码_R - Fatal编程技术网

R中二元经验累积分布函数的编码

R中二元经验累积分布函数的编码,r,R,嗨:我正试图在R中获取此函数的代码,但没有办法。R中有一个名为mecdf的包,但现在不可用。有人能帮帮我吗?@VincentGuillemot将答案作为评论——像这样的不推荐的软件包被存档在CRAN上 链接是: 代码是: mecdf = function (x, continuous=FALSE, ..., validate=TRUE, expand=continuous, project=FALSE, expandf=0.1) { x = cbind (x) nraw =

嗨:我正试图在R中获取此函数的代码,但没有办法。R中有一个名为mecdf的包,但现在不可用。有人能帮帮我吗?

@VincentGuillemot将答案作为评论——像这样的不推荐的软件包被存档在CRAN上

链接是:

代码是:

mecdf = function (x, continuous=FALSE, ...,
    validate=TRUE, expand=continuous, project=FALSE, expandf=0.1)
  { x = cbind (x)
    nraw = nr = nrow (x)
    nc = ncol (x)
    if (validate)
    {   if (length (list (...) ) > 0)
            stop ("invalid constructor argument")
        if (!is.numeric (x) ) stop ("x must be numeric")
        if (!all (is.finite (x) ) ) stop ("all x must be finite")
        for (j in 1:nc) if (length (unique (x [,j]) ) < 2)
            stop ("each variable requires at least 2 distinct realisations")
        if (nc == 1) x [] = sort (x)
        if (is.null (colnames (x) ) ) colnames (x) = paste ("x", 1:ncol (x), sep="")
        if (is.null (rownames (x) ) ) rownames (x) = 1:nr
    }
    if (expand)
    {   nr = nr + 2
        a = b = numeric (nc)
        for (j in 1:nc)
        {   xrng = range (x [,j])
            xf = expandf * diff (xrng)
            a [j] = xrng [1] - xf
            b [j] = xrng [2] + xf
        }
        x = rbind (a, x, b)
    }
    if (project)
        for (j in 1:nc) x [,j] = (order (order (x [,j]) ) - 1) / (nr - 1)
    Fh = Fst = NULL
    if (nc > 1)
    {   if (continuous)
        {   Fh = .mecdf.continuous
            Fst = .mecdf.vertex
        }
        else Fh = FUNCTION (.mecdf.step)
    }
    else
    {   if (continuous) Fh = .uecdf.continuous
        else Fh =.uecdf.step
    }
    extend (FUNCTION (.mecdf.main), "mecdf", continuous, Fh, Fst, nraw, nr, nc, x)
  }

  .mecdf.main = function (u)
  { if (.$nc > 1)
    {   if (!is.matrix (u) ) u = rbind (u)
        if (.$nc != ncol (u) )
            stop ("k-variate mecdf requires k-column matrix")
        .mecdf.interpolate (.$Fh, .$Fst, .$nr, .$nc, .$x, u)
    }
    else
    {   if (is.matrix (u) && ncol (u) > 1)
            stop ("univariate mecdf doesn't accept multicolumn matrix")
        .uecdf.interpolate (.$Fh, .$nr, .$x, u)
    }
  }

  print.mecdf = function (m, ...)
  { variate = if (m$nc == 1) "univariate"
    else if (m$nc == 2) "bivariate"
    else paste (m$nc, "-variate", sep="")
    type = if (m$continuous) "continuous" else "step"
    cat ("mecdf_{", variate, ", ", type, "}\n", sep="")
    print (samp (m$x) )
  }

  plot.mecdf = function (m, ...)
  { p = m (m$x)
    if (m$nc == 1) .uecdf.plot (m, p, m$continuous, ...)
    else if (m$nc == 2) .becdf.plot (m, p, ...)
    else stop ("s3x_plot.mecdf only supports univariate and bivariate models")
  }

  .uecdf.plot = function (e, p, continuous, ...)
  { xlab = colnames (e$x)
    ylab = "Fh(x)"
    if (continuous)
        plot (e$x, p, ylim=c (0, 1), yaxs="i", type="l", xlab=xlab, ylab=ylab, ...)
    else
    {   plot (e$x, p, ylim=c (0, 1), yaxs="i", xlab=xlab, ylab=ylab, pch=NA, ...)
        x1 = e$x [-e$nr]
        x2 = e$x [-1]
        p0 = p [-e$nr]
        segments (x1, p0, x2, p0)
        segments (e$x, c (0, p), e$x, c (p, 1) )
    }
  }

  .becdf.plot = function (e, p, lines=TRUE, lty=1, col=rgb (0.975, 0.7, 0), ...)
  { labs = colnames (e$x)
    x1 = e$x [,1]; x2 = e$x [,2]
    plot (x1, x2, xlab=labs [1], ylab=labs [2], pch=NA, ...)
    if (lines)
    {   segments (x1, x2, x1 - 2 * diff (range (x1) ), x2, lty=lty, col=col)
        segments (x1, x2, x1, x2 - 2 * diff (range (x2) ), lty=lty, col=col)
    }
    text (x1, x2, round (p, 2) )
  }
mecdf=函数(x,continuous=FALSE。。。,
验证=真,扩展=连续,项目=假,扩展F=0.1)
{x=cbind(x)
nraw=nr=nrow(x)
nc=ncol(x)
如果(验证)
{if(长度(列表(…)>0)
停止(“无效的构造函数参数”)
如果(!is.numeric(x))停止(“x必须是数字”)
如果(!all(is.finite(x)))停止(“所有x必须是有限的”)
对于(1:nc中的j)if(长度(唯一(x[,j]))<2)
停止(“每个变量至少需要2个不同的实现”)
如果(nc==1)x[]=排序(x)
如果(is.null(colnames(x)))colnames(x)=粘贴(“x”,1:ncol(x),sep=”“)
如果(is.null(rownames(x)))rownames(x)=1:nr
}
如果(展开)
{nr=nr+2
a=b=数字(nc)
对于(1:nc中的j)
{xrng=范围(x[,j])
xf=expandf*diff(xrng)
a[j]=xrng[1]-xf
b[j]=xrng[2]+xf
}
x=rbind(a,x,b)
}
国际单项体育联合会(项目)
对于(1:nc中的j)x[,j]=(顺序(x[,j])-1)/(nr-1)
Fh=Fst=NULL
如果(nc>1)
{if(连续)
{Fh=.mecdf.continuous
Fst=.mecdf.vertex
}
else Fh=功能(.mecdf.step)
}
其他的
{如果(连续)Fh=.uecdf.continuous
else Fh=.uecdf.step
}
扩展(函数(.mecdf.main)、“mecdf”、连续、Fh、Fst、nraw、nr、nc、x)
}
.mecdf.main=函数(u)
{如果(.$nc>1)
{如果(!is.matrix(u))u=rbind(u)
如果(.$nc!=ncol(u))
停止(“k变量mecdf需要k列矩阵”)
.mecdf.interpolate(.$Fh,.$Fst,.$nr,.$nc,.$x,u)
}
其他的
{if(is.matrix(u)&&ncol(u)>1)
stop(“单变量mecdf不接受多列矩阵”)
.uecdf.插值(.$Fh、.$nr、.$x、u)
}
}
print.mecdf=函数(m,…)
{variate=if(m$nc==1)“单变量”
如果(m$nc==2)“双变量”
else粘贴(m$nc,“-变量”,sep=”“)
类型=如果(m$连续)“连续”或“其他”步骤
cat(“mecdf_{”,变量,,,,,类型,}\n,sep=”“)
打印(samp(百万美元x))
}
plot.mecdf=函数(m,…)
{p=m(m$x)
如果(m$nc==1).uecdf.plot(m,p,m$continuous,…)
else if(m$nc==2).becdf.plot(m,p,…)
else stop(“s3x_plot.mecdf仅支持单变量和双变量模型”)
}
.uecdf.plot=函数(e、p、连续等)
{xlab=colnames(e$x)
ylab=“Fh(x)”
如果(连续)
绘图(e$x,p,ylim=c(0,1),yaxs=“i”,type=“l”,xlab=xlab,ylab=ylab,…)
其他的
{绘图(e$x,p,ylim=c(0,1),yaxs=“i”,xlab=xlab,ylab=ylab,pch=NA,…)
x1=e$x[-e$nr]
x2=e$x[-1]
p0=p[-e$nr]
片段(x1,p0,x2,p0)
分部(e$x,c(0,p),e$x,c(p,1))
}
}
.becdf.plot=function(e,p,lines=TRUE,lty=1,col=rgb(0.975,0.7,0),…)
{labs=colnames(e$x)
x1=e$x[,1];x2=e$x[,2]
图(x1,x2,xlab=labs[1],ylab=labs[2],pch=NA,…)
如果(行)
{段(x1,x2,x1-2*diff(范围(x1)),x2,lty=lty,col=col)
段(x1,x2,x1,x2-2*diff(范围(x2)),lty=lty,col=col)
}
文本(x1,x2,圆形(p,2))
}

取回一个?@Quintincote怎么样?你让它工作了吗?用什么版本的R?我在3.2中遇到了各种各样的麻烦。