在Linux中运行R脚本时如何在R中提出问题?

在Linux中运行R脚本时如何在R中提出问题?

我在 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中有这样的功能吗?任何帮助或指导将不胜感激。

相关内容