我在 R 中编写了一个代码,其中有 2 个变量:rep & x 代码的编写方式是我应该进入脚本内部以根据输入数据更改 X 和 rep 变量的值。我想知道如何自动化此操作而不是进入脚本:
rm(list=ls())
ls()
data<-read.table(file="data.txt", header=T)
colnames(data)
rep<-1000
x <- 88
diff_debv<-matrix(,nr=rep,nc=1)
for (i in 1:rep) {
N<-nrow(data)
m1<-runif(1)
m2<-runif(1)
sd1<-runif(1)
sd2<-runif(1)
x1<-rnorm(N,m1,sd1)
x2<-rnorm(N,m2,sd2)
data0<-cbind(data,x1,x2)
data1<-data0[with(data0,order(-x1)),]
top40_x1 <-data1[1:x,]
dEBV2019_1 <- mean(top40_x1$run.15564)
data2<-data0[with(data0,order(-x2)),]
top40_x2<-data2[1:x,]
dEBV2019_2 <- mean(top40_x2$run.15564)
diff_debv[i,1]<-(dEBV2019_1-dEBV2019_2)
}
sd.diff_debv <- sd(diff_debv)
sd.diff_debv
data3<-data0[with(data0,order(-GEBV2017)),]
data4<-data0[with(data0,order(-EBV2017)),]
top40_GEBV2017<- data3[1:x,]
top40_EBV2017<-data4[1:x,]
mean_top40_GEBV2017 <- mean(top40_GEBV2017$GEBV2017)
mean_top40_EBV2017 <- mean(top40_EBV2017$EBV2017)
diff_rank<-(mean_top40_GEBV2017-mean_top40_EBV2017)
type1_debv <- 1-(pnorm(diff_rank, 0, sd.diff_debv))
diff_rank
sd.diff_debv
type1_debv
我不想每次都进入脚本内部更改 x 和 rep 的值,当我在 Linux 中运行脚本时,会出现 2 个问题,在回答这些问题后,脚本会相应执行。例如:
R < script.r > result
what is the value for rep?
1000
what is the value for x?
88
R中有这样的功能吗?任何帮助或指导将不胜感激。