Szukaj…


Wprowadzenie

Jeśli chcesz rutynowo stosować analizę R do wielu oddzielnych plików danych lub zapewnić powtarzalną metodę analizy innym osobom, wykonywalny skrypt R jest przyjaznym dla użytkownika sposobem. Zamiast ty lub twój użytkownik musicie wywołać R i wykonać skrypt wewnątrz R za pomocą source(.) Lub wywołania funkcji, użytkownik może po prostu wywołać sam skrypt, tak jakby był programem.

Uwagi

Aby reprezentować standardowe kanały wejścia / wyjścia, użyj file("stdin") funkcji file("stdin") (wejście z terminala lub innego programu przez potok), stdout() (standardowe wyjście) i stderr() (błąd standardowy). Zauważ, że chociaż istnieje funkcja stdin() , nie można jej użyć podczas dostarczania gotowego skryptu do R, ponieważ odczyta on kolejne wiersze tego skryptu zamiast danych wprowadzanych przez użytkownika.

Podstawowa struktura samodzielnego programu R i sposób jego wywoływania

Pierwszy samodzielny skrypt R.

Autonomiczne skrypty R nie są wykonywane przez program R ( R.exe w systemie Windows), ale przez program o nazwie Rscript ( Rscript.exe ), który jest domyślnie dołączony do instalacji R

Aby wskazać na ten fakt, samodzielne skrypty R rozpoczynają się specjalną linią o nazwie Shebang , która zawiera następującą treść: #!/usr/bin/env Rscript . W systemie Windows potrzebny jest dodatkowy środek, który jest później rozwiązywany.

Poniższy prosty samodzielny skrypt R zapisuje histogram pod nazwą pliku „hist.png” z liczb, które otrzymuje jako dane wejściowe:

#!/usr/bin/env Rscript

# User message (\n = end the line)
cat("Input numbers, separated by space:\n")
# Read user input as one string (n=1 -> Read only one line)
input <- readLines(file('stdin'), n=1)
# Split the string at each space (\\s == any space)
input <- strsplit(input, "\\s")[[1]]
# convert the obtained vector of strings to numbers
input <- as.numeric(input)

# Open the output picture file
png("hist.png",width=400, height=300)
# Draw the histogram
hist(input)
# Close the output file
dev.off()

Możesz zobaczyć kilka kluczowych elementów samodzielnego skryptu R. W pierwszym wierszu widoczna jest linia Shebang. Następnie cat("....\n") służy do drukowania wiadomości do użytkownika. Użyj file("stdin") wejście file("stdin") gdy chcesz podać „Dane wejściowe użytkownika na konsoli” jako źródło danych. Można go użyć zamiast nazwy pliku w kilku funkcjach odczytu danych ( scan , read.table , read.csv , ...). Po przekształceniu danych wejściowych użytkownika z ciągów na liczby rozpoczyna się drukowanie. Widać tam, że polecenia drukowania, które mają być zapisane w pliku, muszą być ujęte w dwa polecenia. Są to w tym przypadku png(.) I dev.off() . Pierwsza funkcja zależy od pożądanego formatu pliku wyjściowego (inne popularne opcje to jpeg(.) I pdf(.) ). Druga funkcja, dev.off() jest zawsze wymagana. Zapisuje wykres do pliku i kończy proces drukowania.

Przygotowywanie samodzielnego skryptu R.

Linux / Mac

Plik skryptu autonomicznego musi najpierw zostać uruchomiony. Może się to zdarzyć, klikając plik prawym przyciskiem myszy, otwierając „Właściwości” w menu otwierającym i zaznaczając pole wyboru „Plik wykonywalny” na karcie „Uprawnienia”. Alternatywnie polecenie

chmod +x PATH/TO/SCRIPT/SCRIPTNAME.R

można wywołać w terminalu.

Windows

Dla każdego skryptu autonomicznego należy zapisać plik wsadowy o następującej treści:

"C:\Program Files\R-XXXXXXX\bin\Rscript.exe" "%~dp0\XXXXXXX.R" %*

Plik wsadowy jest zwykłym plikiem tekstowym, ale ma rozszerzenie *.bat oprócz rozszerzenia *.txt . Utwórz go za pomocą edytora tekstu, takiego jak notepad (nie Word ) lub podobny, i umieść nazwę pliku w cudzysłowie "FILENAME.bat" ) w oknie dialogowym zapisu. Aby edytować istniejący plik wsadowy, kliknij go prawym przyciskiem myszy i wybierz „Edytuj”.

Musisz dostosować powyższy kod wszędzie tam, gdzie jest napisane XXX...

  • Wstaw właściwy folder, w którym znajduje się instalacja R.
  • Wstaw poprawną nazwę skryptu i umieść go w tym samym katalogu, co ten plik wsadowy.

Objaśnienie elementów w kodzie: Pierwsza część "C:\...\Rscript.exe" informuje system Windows, gdzie znaleźć program Rscript.exe . Druga część "%~dp0\XXX.R" mówi Rscript aby wykonał napisany skrypt R, który znajduje się w tym samym folderze co plik wsadowy ( %~dp0 oznacza folder pliku wsadowego). Na koniec %* przekazuje wszystkie argumenty wiersza poleceń podane do pliku wsadowego do skryptu R.

Po dwukrotnym kliknięciu pliku wsadowego skrypt R jest wykonywany. Jeśli przeciągniesz pliki do pliku wsadowego, odpowiednie nazwy plików zostaną przekazane do skryptu R jako argumenty wiersza poleceń.

Używanie programu Littler do wykonywania skryptów R.

littler (wymawiane małe r ) ( cran ) zapewnia, oprócz innych funkcji, dwie możliwości uruchamiania skryptów R z wiersza poleceń za pomocą polecenia r littler (gdy jeden działa w systemie Linux lub MacOS).

Instalowanie littler

Od R:

install.packages("littler")

Ścieżka r jest wydrukowana w terminalu, podobnie jak

You could link to the 'r' binary installed in
'/home/*USER*/R/x86_64-pc-linux-gnu-library/3.4/littler/bin/r'
from '/usr/local/bin' in order to use 'r' for scripting.

Aby móc wywoływać r linii poleceń systemu, potrzebne jest dowiązanie symboliczne:

ln -s /home/*USER*/R/x86_64-pc-linux-gnu-library/3.4/littler/bin/r /usr/local/bin/r

Korzystanie z apt-get (Debian, Ubuntu):

sudo apt-get install littler

Korzystanie z Littlera ze standardowymi skryptami .r

r z littler umożliwia wykonywanie samodzielnych skryptów R bez żadnych zmian w skrypcie. Przykładowy skrypt:

# User message (\n = end the line)
cat("Input numbers, separated by space:\n")
# Read user input as one string (n=1 -> Read only one line)
input <- readLines(file('stdin'), n=1)
# Split the string at each space (\\s == any space)
input <- strsplit(input, "\\s")[[1]]
# convert the obtained vector of strings to numbers
input <- as.numeric(input)

# Open the output picture file
png("hist.png",width=400, height=300)
# Draw the histogram
hist(input)
# Close the output file
dev.off()

Zauważ, że na szczycie skryptów nie ma szelangu. Zapisany jako np. hist.r , można go hist.r bezpośrednio z polecenia systemowego:

r hist.r

Korzystanie z littler na skryptach shebanged

Możliwe jest również tworzenie wykonywalnych skryptów R za pomocą Littlera za pomocą shebang

#!/usr/bin/env r

u góry skryptu. Odpowiedni skrypt R musi być wykonywalny za pomocą chmod +X /path/to/script.r i można go wywoływać bezpośrednio z terminala systemowego.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow