У меня есть Rscript для анализа параметров из командной строки. Он разбирает имя файла в порядке, но когда я пытаюсь указать, что делать на оси x или y при синтаксическом анализе команды, он не распознает поле, которое я пытаюсь построить. Вот RscriptRscript optparse ggplot
#!/usr/bin/Rscript --vanilla
library(ggplot2)
library("optparse")
option_list = list(
make_option(c("-f", "--file"), type="character", default=NULL,
help="dataset file name", metavar="character"),
make_option(c("-o", "--out"), type="character", default="out.txt",
help="output file name [default= %default]", metavar="character"),
make_option(c("-x", "--x_axis"), type="character", default="name",
help="x axis value [default= %default]", metavar="character"),
make_option(c("-y", "--y_axis"), type="character", default="score",
help="y axis value [default= %default]", metavar="character")
);
opt_parser = OptionParser(option_list=option_list);
opt = parse_args(opt_parser);
data <- read.table(opt$file, header=TRUE)
p <- ggplot(data, aes(x=factor(opt$x_axis), opt$y_axis))
p + geom_boxplot()
Вот файл данных:
character name score
A 54 3.589543
B 54 3.741945
C 60 3.585833
D 60 3.655622
Вот командная строка:
./boxplot.R -f "file.txt" -o «тест .png "-x" name "-y" score "
Это правильное решение! Спасибо! –
Рад слышать. Способ работы StackOverflow заключается в том, что вы ожидаете «принять» рабочий ответ (или лучший из нескольких), нажав на отметку (которую вы видите только в качестве исходного плаката). Кроме того, вы также можете «увеличить», нажав стрелку вверх. Система основана на заслугах, поэтому лучшие ответы получают награды. –