मैं नीचे निम्नलिखित समारोह है, जो मैं इतना है कि मैं कमांड लाइन से R
स्क्रिप्ट चला सकते हैं आदेश पंक्ति तर्क पार्स करने के लिए उपयोग कर रहा हूँ, है:आर समारोह
parseArguments <- function() {
text1 <- commandArgs(TRUE)
eval(parse(text=gsub("\\s", ";", gsub("--","", text1))))
args <- list()
for(ar in ls()[! ls() %in% c("text1", "args")]) {args[ar] <- get(ar)}
return (args)
}
यहाँ एक CLI है सत्र उत्पादन जब मैं एक R
स्क्रिप्ट, सीएल तर्क पार्स करने के लिए ऊपर समारोह का उपयोग करता है निम्नलिखित आदेश पंक्ति तर्क का उपयोग कर कॉल करने का प्रयास:
./myscript.R --param1='XLIF' --param2='ESX' --param3=5650.0 --param4=5499.2 --param5=0.0027397260274 --param6='Jul' --riskfreerate=0.817284313119 --datafile='/path/to/some/datafile.csv' --imagedir='/path/to/images' --param7=2012 --param8=2
Error in parse(text = gsub("\\s", ";", gsub("--", "", text1))) :
8:10: unexpected '/'
7: riskfreerate=0.817284313119
8: datafile=/
^
Calls: parseArguments -> eval -> parse
Execution halted
मदद?
[[अपडेट]]
मैं एक प्रकार की कटार की सलाह का पालन किया और स्थापित optparse
पुस्तकालय है।
library(optparse)
# Get the parameters
option_list <- list(
make_option(c("-m", "--param1"), action="store_false"),
make_option(c("-t", "--param2"), action="store_false"),
make_option(c("-a", "--param3"), action="store_false"),
make_option(c("-s", "--param4"), action="store_false"),
make_option(c("-x", "--param5"), action="store_false"),
make_option(c("-o", "--param6"), action="store_false"),
make_option(c("-y", "--param7"), action="store_false"),
make_option(c("-r", "--riskfreerate"), action="store_false"),
make_option(c("-c", "--param8"), action="store_false"),
make_option(c("-d", "--datafile"), action="store_false"),
make_option(c("-i", "--imagedir"), action="store_false")
)
# get command line options, i
opt <- parse_args(OptionParser(option_list=option_list))
जब मैं इसे पारित एक ही आदेश पंक्ति पैरामीटर आर स्क्रिप्ट चलाने, मैं: मेरे कोड अब इस तरह दिखता है
Loading required package: methods
Loading required package: getopt
Error in getopt(spec = spec, opt = args) :
long flag "param1" accepts no arguments
Calls: parse_args -> getopt
Execution halted
???
+1 –
कृपया मेरे (optparse का प्रयोग करके) अद्यतन प्रश्न देखें –