下面是一段代码,它在R脚本中运行良好:
```{r }
N <- c(10,20,10,20,50)
M <- c(10,10,20,20,50)
N <- 50
M <- 50
s1 <- c(1,1)
s2 <- c(1,25) #standartnovisrzes sadalījumiem
N<- 10000 #atkārtojumu短片
emp <- c()
对于(1:2中的k){
对于(1:5中的j){
resamples1 <- lapply(1:N,function(i) rnorm(nj,0,s1k))
resamples2 <- lapply(1:N,function(i) s2k(mj,0,s2k))
t.rez_var_equal <- mapply(resamples1,resamples2,
FUN=function(x,y) t.test(x,y, var.equal=T))
t_rez <- mapply(resamples1,resamples2,
FUN=function(x,y) t.test(x,y))
t_wilcox <- mapply(resamples1,resamples2,
FUN=function(x,y) wilcox.test(x,y))
t.pval.var.equal <- unlist(t.rez_var_equal3,)
t.pval <- unlist(t_rez3,)
t.pval.wilcox <- unlist(t_wilcox3,)
length(t.pval.var.equalt.pval.var.equal<=0.05)/N <- emp_05_tvequal
emp_05_t <- length(t.pvalt.pval<=0.05)/N
emp_05_twilcox <- length(t.pval.wilcoxt.pval.wilcox<=0.05)/N
emp <- append(emp,c(emp_05_tvequal,emp_05_t,emp_05_twilcox))
emp
}}
但是当尝试编织文档时,它抛出了关于第9行的错误:
resamples1 <- lapply(1:N, function(i) rnorm(n[j], 0, s1[k]))
错误消息:Error in rnorm(n[j], 0, s1[k])): invalid argument Calls: <Anonymous>... withVisible -> eval -> eval -> lapply -> FUN -> rnorm Execution halted.
也许R不允许在Rmarkdown文件中使用循环?
发布于 2021-01-18 23:10:07
在声明变量n
和m
之后,您会意外地覆盖它们。所以它们的长度都是1。当你试图访问n[i]
中的任何其他位置时,它会返回NA
,这会在rnorm
函数中抛出这个错误。
这与Rmarkdown无关,而是因为当kniting一个文件时,它会运行脚本中的所有行,而当你“手动”运行它时,你可以选择只运行你想要运行的行,这就是为什么它在脚本中工作。
https://stackoverflow.com/questions/65783248
复制