2017-09-10 66 views
2

我試圖運行一段R代碼HERE on R-Fiddle,但沒有成功。代碼在R中運行非常順利,但完全不運行HERE on R-Fiddle代碼在R中運行正常但在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

看起來像舊版本[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

+0

你是怎麼改變比其他格式的輸出? (我相信你做了一件事,這只是不容易看到) –

+0

@BenBolker用「< - 」替換「=」,每行單個語句(不再有「;」) - 就是這樣 –

+0

@BenBolker我不會如果我刪除了一些看不見的符號,** R **可以直接解析,但通過這個R-Fiddle網頁界面變成了不同的東西並且不可解析 –

相關問題