R скрипт выводит значения в другую папку или каталог - PullRequest
0 голосов
/ 10 апреля 2020

После запуска моего R-скрипта в терминале я получаю два файла с выходными данными: a.dat и b.dat. Моя цель - напрямую перевести эти выходные файлы в новую папку. Есть ли способ сделать что-то вроде этого:

 Rscript myscript.R > folder

Примечание: для записи выходного файла я просто использую это:

 write(t(result1), file = "a.dat", ncolumns = 5, append=TRUE)

Ответы [ 2 ]

0 голосов
/ 10 апреля 2020

Я решил свою проблему, выполнив следующее:

  1. Я создал выходную папку 'output'

  2. Я добавил полный путь к вывод в myscript.R как

write(t(result1), file = "home/Documents/output/a.dat", ncolumns = 5, append=TRUE)

Решено! :)

0 голосов
/ 10 апреля 2020

Вы можете просто использовать write.table для создания двух CSV-файлов, таких как:

Минимальный рабочий пример:

с использованием r-скрипта с именем "Rfile.r "в каталоге" adir "в моей папке" Документ ". Сценарий считывает первые два ввода, число c в качестве входного аргумента для функции, а также строку символов с каталогом output-target-directory. (Вы также можете указать имена файлов и т. д., конечно, c)

Rfile.r ::

# set arguments, to later specifiy in terminal , 
# one numeric and one target directory
arg <- commandArgs(trailingOnly = TRUE)

n<-as.numeric(arg[1])
path<-as.character(arg[2])

## A random function two create two csv 's 
fun <- function(n) {  
  data.a <-data.frame(rep("Some Data", n))
  data.b<-data.frame(rnorm(1:n))
  data<-list(data.a,data.b)
  return(data)
  }

# create data using input arg[1], aka 'n'
data<-fun(n)

# now the important Part: using write.table with the arg[2] aka 'path' 
# :
write.table(data[1],file =paste(path,"/data_a.csv", sep = ""))
write.table(data[2],file =paste(path,"/data_b.csv", sep = ""))

## write terminal output message using cat()
cat(paste("Your input was :" ,arg[1],sep="\t"),
    paste( "your target path was:" ,arg[2] ,sep="\t"), sep = "\n")

, затем запустить в терминале:

$ Rscript ~/Dokumente/adir/Rfile.r 3 ~/Dokumente/bdir

создает два csv в каталоге "bdir" с именем "data_a.csv" и "data_b.csv" где 3 был цифрой c, введенной для функции в Rfile.r

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...