代码在R中运行正常但在R-Fiddle中失败,为什么?

时间:2017-09-10 01:11:23

标签: r

我正在尝试运行一段R代码HERE on R-Fiddle但没有成功。代码在R中运行得非常流畅,但根本不运行HERE on R-Fiddle

任何建议都表示赞赏。

alt.hyp = function(N, d){

options(warn = -1) ; d = sort(d)
df = N - 1  ;  d.SE = 1/sqrt(N)  ;  ncp.min = min(d)*sqrt(N)  ;  ncp.max = max(d)*sqrt(N)
min.d = d.SE*qt(1e-5, df, ncp.min)  ;  max.d = d.SE*qt(0.99999, df, ncp.max)  

for(i in 1:length(d)){      
   H = curve(dt(d[i]*sqrt(N), df, x*sqrt(N)), min.d, max.d, n = 1e3, xlab = "Effect Size", 
       ylab = NA, ty = "n", add = i!= 1, bty = "n", yaxt = "n", font.lab = 2)

   polygon(H, col = adjustcolor(i, .7), border = NA)
   text(d[i], max(H$y), bquote(bolditalic(H[.(i-1)])), pos = 3, xpd = NA)
   axis(1, at = d[i], col = i, col.axis = i, font = 2)
   segments(d[i], 0, d[i], max(H$y), lty = 3)
   }
 }
# Example of use:
alt.hyp(N = 30, d = seq(0, 2, .5))

1 个答案:

答案 0 :(得分:1)

在R小提琴上看起来使用旧版本的 R

无论如何,如果我以旧式重做你的脚本,它可以工作,请参阅here。唯一的更改是将作业从=替换为<-,并将每行单个语句替换。

代码

alt.hyp <- function(N, d) {
    options(warn = -1)
    d <- sort(d)
    df <- N - 1
    d.SE <- 1/sqrt(N)
    ncp.min <- min(d)*sqrt(N)
    ncp.max <- max(d)*sqrt(N)
    min.d <- d.SE*qt(1e-5, df, ncp.min)
    max.d <- d.SE*qt(0.99999, df, ncp.max)

    for(i in 1:length(d)){      
        H <- curve(dt(d[i]*sqrt(N), df, x*sqrt(N)), min.d, max.d, n = 1e3, xlab = "Effect Size", ylab = NA, ty = "n", add = i!= 1, bty = "n", yaxt = "n", font.lab = 2)
       polygon(H, col = adjustcolor(i, .7), border = NA)
       text(d[i], max(H$y), bquote(bolditalic(H[.(i-1)])), pos = 3, xpd = NA)
       axis(1, at = d[i], col = i, col.axis = i, font = 2)
       segments(d[i], 0, d[i], max(H$y), lty = 3)
    }    

    N
}

q <- alt.hyp(N = 30, d = seq(0, 2, .5))
print(q)

R小提琴中的输出

enter image description here