Como definir o local do arquivo atual como o diretório de trabalho padrão na programação R?

Quero tornar o local do arquivo atual como o diretório de trabalho.

Usando o 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.

Usando Command a partir do terminal: Rscript writehere.r (Não funciona!)

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


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

Usando Command do terminal: Rscript writehere.r (Funciona agora!)

# 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")

Usando a função dentro de ~ / .Rprofile for Rstudio (Works!):,

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

Então, em qualquer diretório, digamos que eu tenho um arquivo writehere.r, agora funciona.

# 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")

Pergunta, questão: Por que a função

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

não funciona para editores de texto que não sejam o Rstudio?

Alguns links úteis são os seguintes:
R definindo o diretório de trabalho para o local do arquivo de origem?
Comando R para configurar o diretório de trabalho no local do arquivo de origem
obter o nome do arquivo e o caminho do arquivo `source`d
setwd () no diretório de trabalho atual
Comando para "Definir diretório de trabalho no local do arquivo de origem"
SublimeText e R: definindo o diretório de arquivos atual
Configurando o diretório de trabalho através de uma função
O que é uma maneira infalível de definir permanentemente o diretório de trabalho do R?
R definindo o diretório de trabalho para o local do arquivo de origem?
Como entrar no diretório de um arquivo no R?

questionAnswers(4)

yourAnswerToTheQuestion