2015-07-03 4 views
1

У меня есть команды ниже, которые я использую для создания графиков в R. Основным текстовым файлом является cross_correlation.csv.Выполнение команд R с использованием сценария bash

Как я могу поместить его в скрипт bash, чтобы при запуске его на терминале команды R выполняли свои задания и заканчивали (как и все остальные скрипты оболочки).

cross_correlation <- read.table(file.choose(), header=F, sep="\t") 

barplot(cross_correlation$V3) 
dev.copy(png,"cc.png",width=8,height=6,units="in",res=100) 
dev.off() 

hist(cross_correlation$V3, breaks=15, prob=T) 
dev.copy(png,"hist_cc.png",width=8,height=6,units="in",res=100) 
dev.off() 
+2

Возможный дубликат [Run R script из командной строки] (http://stackoverflow.com/questions/18306362/run-r-script-from-command-line) –

+0

Я собирался предложить скрипт R R CMD BATCH .r', так что, по-моему, это обман. – RHertel

ответ

3

Если вы установили R, вы также должны иметь программу, установленную Rscript, который может быть использован для запуска R скриптов:

Rscript myscript.r 

Таким образом, вы можете поместить эту строку в Баш скрипт:

#!/bin/bash 

Rscript myscript1.r 
Rscript myscript2.r 
# other bash commands 

Обычно это самый простой способ запуска R-скриптов внутри сценариев bash.

Если вы хотите, чтобы сделать скрипт исполняемым, так что вы можете запустить его, набрав ./myscript.r, вам нужно узнать, где ваш Rscript установлены, набрав:

which Rscript 
# /usr/bin/Rscript 

Тогда ваш myscript.r будет выглядеть следующим образом

#!/usr/bin/Rscript 

cross_correlation <- read.table(file.choose(), header=F, sep="\t") 

barplot(cross_correlation$V3) 
dev.copy(png,"cc.png",width=8,height=6,units="in",res=100) 
dev.off() 

hist(cross_correlation$V3, breaks=15, prob=T) 

dev.copy(png,"hist_cc.png",width=8,height=6,units="in",res=100) 
dev.off() 

Этот метод объясняется в this question, что также может дать вам некоторые идеи.

+1

Вы также можете использовать ['#!/Usr/bin/env Rscript' в качестве линии shebang] (http://stackoverflow.com/questions/2429511/why-do-people-write-usr-bin-env-python -он-The-первых, прямой-а-питон-скрипта). –

+0

Получение этой ошибки ./runr.sh Ошибка: неожиданный символ в «cross_correlation <- read.table (file.choose(), header = F, sep =" \ t ") cross_correlation.csv" Выполнение приостановлено ./ runr.sh: строка 12: синтаксическая ошибка около неожиданного токена '(' ./runr.sh: строка 12:' \t cross_correlation <- read.table (file.choose(), header = F, sep = "\ t") ' – user2209882

+0

Ошибка в скрипте, я исправил его сейчас. – dwcoder

Смежные вопросы