【发布时间】:2015-09-21 21:10:26
【问题描述】:
为什么我的 R 函数不返回或打印绘图?代码如下。除了情节之外,所有代码似乎都可以正常工作。无论我做什么,当函数被调用时,我都无法让 R 创建绘图。在网上查了一下,找不到任何原因导致这行不通。
powerc.fun <- function(n,sigma,r){
a <- 0.05
d <- seq(-20,20,2)
power <- rep(NA,length(d))
p.lab <- rep(NA,length(d))
for (j in 1:length(d)){
mu1 <- 110
mu2 <- mu1-d[j]
reject <- rep(NA,r)
for (i in 1:r){
sample1 <- rnorm(n,mu1,sigma)
sample2 <- rnorm(n,mu2,sigma)
sample.t <- t.test(sample1,sample2)
p.val <- sample.t[3]
reject[i] <- p.val<a
power[j] <- sum(reject)/length(reject)
p.lab[j] <- paste('d=',d[j],sep='')
}}
d.power <- cbind(d,power)
return(d.power)
p.plot <- plot(d.power[,1], d.power[,2], type="l", xlab=bquote(H[a]), ylab="Power", main="Power Calculations for Two Sample T Test")
print(p.plot)
return(p.plot)
}
有什么想法吗?
【问题讨论】:
-
如果您从顶层调用(即从控制台),则不需要
return。如果要显示绘图,只需调用plot行而不存储它,print-ing 它,或return-ing 它。 -
@Thomas:但我不是从顶层调用,它嵌入在函数调用中。如果我调用该函数,它根本不会绘图。即使没有打印/返回。
-
@B.Mr.W.:你能具体解释一下那个链接中的内容应该对我有什么帮助吗?该问题的答案是使用“打印”,我已经明确表示它不起作用。
-
你是否在到达情节之前故意返回
d.power?或者这只是您在发布问题时忘记删除的测试的一部分?