基于变量-R的注释/取消注释行

基于变量-R的注释/取消注释行,r,if-statement,comments,R,If Statement,Comments,有这样的R代码: for (i in 1:length(DV)){names(DV[[i]])<-paste("DV", substr(names(P2[[1+10*(i-1)]]),12,19), sep="_")} for (i in 1:length(DW)){names(DW[[i]])<-paste("DW", substr(names(P2[[1+10*(i-1)]]), 12,19), sep="_")} for(i in 1:length(DV)){names(DV

有这样的R代码:

for (i in 1:length(DV)){names(DV[[i]])<-paste("DV", substr(names(P2[[1+10*(i-1)]]),12,19), sep="_")}
for (i in 1:length(DW)){names(DW[[i]])<-paste("DW", substr(names(P2[[1+10*(i-1)]]), 12,19), sep="_")}

for(i in 1:length(DV)){names(DV[[i]])通常,这样的功能是通过在执行脚本时读取的配置文件以及
if()
将逻辑值分配给对象,并使用它控制后续代码块的执行

# read config file and use it to process data
# 
rawData <- "environment,parameter,value
dev,debug,TRUE
test,debug,TRUE
prod,debug,FALSE
"

configParms <- read.csv(textConnection(rawData),header=TRUE)
# assign the value from the data frame for DEV environment to an object 
assign("debugOn",configParms[configParms$environment =="dev" & 
                             configParms$parameter == "debug","value"])

debugOn

if(debugOn){
     # execute this code block
     message("Entered debug code block")
}
message("passed debug code block")

尽管@Len Greski的回答更专业,我相信这是一种更专业的方法,但我只是想知道如何以一种简单的方式解决我的问题

我使用了
if
station,而不是commnet/取消注释这些行以避免(或不避免)它们运行

var<-TRUE

if (var) {
for (i in 1:length(DV)){names(DV[[i]])<-paste("DV", substr(names(P2[[1+10*(i-1)]]),12,19), sep="_")}
for (i in 1:length(DW)){names(DW[[i]])<-paste("DW", substr(names(P2[[1+10*(i-1)]]), 12,19), sep="_")}
}

var您的示例是唯一想到的。在企业软件中,您经常会看到某些代码只打算在调试模式下运行。通常的处理方法是根据某个全局标志将该代码包装在
if
语句中(
var
,如您上面所写)。快速提醒您不需要
(var==TRUE)
如果
var
逻辑的
如果(var)当
var
采用布尔值时,
就足够了。@TimBiegeleisen我想
如果方法正确,但我缺少函数、命令等。要在RIf中执行commnet/uncomment任务,如果您希望对代码中的区域进行物理注释,那么我想您需要在脚本顶部使用单独的脚本你真的想要运行。我不确定它是否值得实现。
> debugOn
[1] TRUE
> if(debugOn){
+      # execute this code block
+      message("Entered debug code block")
+ }
Entered debug code block
> message("passed debug code block")
passed debug code block
> 
var<-TRUE

if (var) {
for (i in 1:length(DV)){names(DV[[i]])<-paste("DV", substr(names(P2[[1+10*(i-1)]]),12,19), sep="_")}
for (i in 1:length(DW)){names(DW[[i]])<-paste("DW", substr(names(P2[[1+10*(i-1)]]), 12,19), sep="_")}
}