Pergunta

No início de minha vida R descobri a dor de R e janelas sendo em páginas diferentes quando ele veio para o separador entre diretórios e subdiretórios. Eventhough eu sei sobre o problema, eu ainda estou magoado por ter manualmente para colocar uma barra invertida na frente de todos os meus barras invertidas ou substituir todos eles com barras.

Eu amo a cópia de um nome de caminho ou um nome de arquivo inteiro com qualquer uma das várias aplicações que tenho em execução no meu computador (por exemplo. XYplorer, Tudo por voidtools) e depois colá-lo em Tinn-R. Existe uma maneira que eu poderia automatizar a tarefa que eu estou fazendo atualmente manualmente.

  • Existe uma configuração em Tinn-R?
  • Existe uma configuração em R?
  • Existe um script autohotkey que poderia fazê-lo para mim por padrão?

Fundo para aqueles que não sabem o que eu estou falando sobre

Citando R for Windows FAQ, Versão para R-2.9.2, B. D. Ripley e D. J. Murdoch

As barras invertidas tem que ser duplicada em R cadeias de caracteres, por isso, por exemplo, uma necessidades ` "D: \ R-2.9.2 \ biblioteca \ xgobi \ Scripts \ xgobi.bat"'. Você pode tornar a vida mais fácil para si mesmo usando barras como caminho separadores: eles não funcionam no Windows

Foi útil?

Solução

Eu escrevi um autohotkey script que é desencadeada por digitar "RFIL" - sem as aspas.

:O:rfil:: ;replaces backslashes with forward slashes in a file name that is stored on the clipboard
StringReplace,clipboard,clipboard,\,/,All
send %clipboard%
return

Se alguém pode me dizer uma maneira mais rápida do que usando o comando send eu apreciaria. Eu tenho um script autohotkey rodando o tempo todo em todos os meus computadores para que eu não tenho que baixar o novo software, a fim de executar este script. Eu simplesmente adicionado para o meu arquivo de script padrão.

Eu vou ser feliz para explicar o que eu fiz, se você me quiser.

Outras dicas

ClipPath adiciona opções de menu do botão direito para escolher qual tipo de barra você quer para colar.

Primeiros Genetics Feito , que parece que poderia ser um recurso útil para os usuários de P em geral.

Eu adaptei o seguinte código autohotkey compartilhada para substituir todas as barras invertidas com barras sempre que eu colar nada em rstudio. Há prós e contras para esta abordagem.

Pros: Você não tem que pensar nisso. O código só será executado se a janela ativa é rstudio.

Contras:. O código é chamado cada vez que você colar algo em R. Cada vez que tenta encontrar barras invertidas e substituí-los com barras

GroupAdd, R, RStudio

;replaces backslashes with forward slashes in a file name that is stored on the clipboard
#IfWinActive ahk_group R
   ^v::
      StringReplace,clipboard,clipboard,\,/,All
      send %clipboard%
   return
#IfWinActive

Eu uso procurar e substituir, mas é claro, não é completamente automático e você tem que tomar cuidado para não substituir "\ t" ou "\ n".

Não exatamente a resposta que você está procurando, mas R tem suas próprias funções shell script que eu uso frequentemente:

list.files (, cheia = true) [retornos caminho completo com separadores apropriados]

file.path () [se junta com separador específico do OS]

e assim por diante ...

Você pode criar uma função wrapper em torno de todos os nomes de caminho:

> replace.slash <- function(path.name) gsub("\\\\","/",path.name)
> path.name <- "c:\\tmp\\"
> replace.slash(path.name)
[1] "c:/tmp/"

[Edit]: Graças Hadley. Eu corrigido o erro lá.

A propósito, eu encontrei este discussão muito útil na este assunto .

Esta é AutoIt código que faz a mesma coisa (substitui \ com /).

Local $text1 = ClipGet()
$text2=StringReplace($text1,"\","/")
ClipPut($text2)

Por que não criar uma função que verifica o sistema operacional e retorna o separador de arquivo adequado (a solução java eu ??acredito)?

file_sep <- function(){
ifelse(.Platform$OS.type == "unix", "/", "//")
}
file_sep()

você pode escolher um nome mais curto, se quiser. A grande falha aqui é que você tem que colar juntos caminhos de arquivo, mas ainda vale a pena a longo prazo, se você está trabalhando em grandes projetos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top