Wie wird der aktuelle Dateispeicherort als Standardarbeitsverzeichnis in der R-Programmierung festgelegt?

Ich möchte den aktuellen Dateispeicherort als Arbeitsverzeichnis festlegen.

Mit Rstudio (Works!):

# Author  : Bhishan Poudel
# Program : writehere.r
# Source  : Rscript writehere.r

# set working directory here
this.dir <- dirname(parent.frame(2)$ofile) # frame(3) also works.
setwd(this.dir)

# Sample data to test this code
mydata <- seq(1:10)
write.csv(mydata,"writehere.dat")
#This works flawlessly in  MacOS 10.9 and Ubuntu 15.1.

Verwenden des Befehls vom Terminal: Rscript writehere.r (Funktioniert nicht!)

Error in dirname(parent.frame(2)$ofile) : 
  a character vector argument expected
Execution halted


------------------
(program exited with code: 1)

Verwenden des Befehls vom Terminal: Rscript writehere.r (Funktioniert jetzt!)

# Author  : Bhishan Poudel
# Program : writehere.r
# Source  : Rscript example.r

# set working directory here
this_dir <- function(directory)
setwd( file.path(getwd(), directory) )

# Sample data to test this code
mydata <- seq(1:10)
write.csv(mydata,"writehere.dat")

Mit der Funktion in ~ / .Rprofile für Rstudio (Works!):,

##############################################
# inside ~/.Rprofile
# set up working directory
setwd_thisdir <- function () {
  this.dir <- dirname(parent.frame(3)$ofile)
  setwd(this.dir)
} 
##############################################

Then, in jedem Verzeichnis sagen wir, ich habe eine Datei writehere.r, jetzt funktioniert es.

# Author  : Bhishan Poudel
# Program : writehere.r
# Compile : Rscript writehere.r

# set working directory here
setwd_thisdir

# Sample data to test this code
mydata <- seq(1:10)
write.csv(mydata,"writehere.dat")

Frage Warum die Funktion

this.dir <- dirname(parent.frame(2)$ofile) # ,frame(3) also works.
setwd(this.dir)

Funktioniert das nicht für andere Texteditoren als Rstudio?

Einige nützliche Links sind folgende:
R Arbeitsverzeichnis auf Quelldateispeicherort setzen?
R Befehl zum Setzen des Arbeitsverzeichnisses auf den Quelldateispeicherort
get Dateiname und Pfad der `source`d Datei
setwd () im aktuellen Arbeitsverzeichnis
Befehl für "Arbeitsverzeichnis auf Quelldateispeicherort setzen"
SublimeText und R: Aktuelles Dateiverzeichnis festlegen
Einstellung des Arbeitsverzeichnisses über eine Funktion
Was ist eine idiotensichere Methode, um das R-Arbeitsverzeichnis dauerhaft festzulegen?
R Arbeitsverzeichnis auf Quelldateispeicherort setzen?
Wie komme ich in das Verzeichnis einer Datei in R?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage