2017-07-23 1 views
0

J'ai fait un fichier Rexec en utilisant ce tutoriel: http://www.r-datacollection.com/blog/Making-R-files-executable/fichier exécutable R arrête après avoir écrit un csv

J'ai fait un à l'aide d'un fichier qui fonctionne tout le chemin à travers quand j'ouvre rstudio et l'exécuter. Mais, le fichier Rexec que j'ai fait accède au premier csv, puis s'arrête. Existe-t-il un moyen de conserver le fichier Rexec en un seul fichier et de faire fonctionner tous les csv, ou doit-il devenir plusieurs fichiers?

Le code en question, qui existe dans un fichier, est ceci:

#Measure the time taken 
start.time <- Sys.time() 

# Load functions in other R files 
source("R/Functions.R") 
source("R/Negatives Check.R") 
source("R/Control Totals.R") 
source("R/Validations.R") 

# Load Packages 
load_packages() 

files = load_TZP() 
files2 = load_TZP_stacked() 

# Negatives Check--------------------------------------------------------------- 
write_csv(cbind(Name = names(files), create_output()), 
      paste0("Final CSV/Negatives Check ", gsub(":", ".", Sys.time()), ".csv")) 

C'est là l'arrêt du fichier .Rexec

# Control Totals Check---------------------------------------------------------- 

# Choose limit to account for rounding 
total_limit = 10 

write_csv(cbind(#Name = control_total_files, 
       #Check = control_total_checks, 
       create_output_totals()), 
      paste0("Final CSV/Control Totals ", gsub(":", ".", Sys.time()), ".csv")) 

# Validations Check------------------------------------------------------------- 

# Choose a limit for the difference, to account for rounding errors 
limit = 0.1 

write_csv(cbind(Name = valid_names, 
       Check = valid_checks, 
       create_output_geo()), 
      paste0("Final CSV/Validations ", gsub(":", ".", Sys.time()), ".csv")) 

# Measure the time taken 
end.time <- Sys.time() 
time.taken <- end.time - start.time 
time.taken 

Répondre

0

Et vos répertoires de travail (d'abord pour rstudio et deuxième pour Rexec)? Sont-ils les mêmes? Peut-être, vous devez changer le répertoire de travail dans Rexec.

# Returns an absolute filepath of current working directory of the R process 
getwd() 

# setwd is used to set the working directory to dir 
setwd("C:/Users/User/Documents") # for example 
+0

Merci, Arkadiy, cela a résolu le problème. Le fichier d'origine était dans un projet R, qui a des répertoires de travail flexibles selon l'endroit où vous l'avez mis. J'ai voté pour votre commentaire, mais ce n'est pas montré parce que je n'ai pas la réputation. – user5720052

+0

Vous pouvez accepter ma réponse. https://stackoverflow.com/help/someone-answers –

+0

Merci, j'ai accepté votre réponse. – user5720052