Sempre achei os arquivos de perfil de inicialização de outras pessoas úteis e instrutivos sobre o idioma. Além disso, embora eu tenha algumas personalizações para Bash e Vim , não tenho nada para R.
Por exemplo, uma coisa que sempre desejei são cores diferentes para entrada e saída de texto em um terminal de janela e talvez até destaque de sintaxe.
r
terminal
customization
rprofile
Peter Mortensen
fonte
fonte
.Rprofile
não deve incluir nenhum código que altere os resultados. O que você pode incluir são itens que alteram a aparência de R (por exemplooptions("width"=160)
) ou o espelho CRAN padrão (por exemplooptions(repos = c(CRAN = "http://cran.rstudio.com"))
). No entanto, não carregue pacotes, altere as opções padrão das funções usadas regularmente, defina a função etc. Seu código deve ser independente e reproduzir os resultados sem o seu.Rprofile
arquivo específico ..Rprofile
?.Rprofile
é um local apropriado para fazer alterações no aplicativo. Segundo, sua pergunta deve ser uma questão SO separada. Eu tento usar um padrão semelhante ao que fizemos em nosso projeto de inspeção de alimentos (consulte o layout do código e as etapas de inicialização na parte superior de cada script).Respostas:
Aqui é minha. Não vai ajudá-lo com a coloração, mas eu entendo isso da ESS e Emacs ...
fonte
r
e, em seguidarm
, colocá-lo em umlocal({ })
bloco. Boa resposta, porém, eu amo a configuração do X11!local({ ... })
como mostrado emhelp(Startup)
é o que eu costumo fazer atualmenteRprofile.site
. Já não é necessário o corte X11 em quando :)Embora eu realmente não tenha isso no meu perfil .r, porque pode quebrar o código dos meus co-autores, eu gostaria que fosse o padrão. Por quê?
1) Os vetores de caracteres usam menos memória (mas apenas por pouco);
2) Mais importante, evitaríamos problemas como:
e
Os fatores são ótimos quando você precisa deles (por exemplo, implementar a ordenação em gráficos), mas são um incômodo na maioria das vezes.
fonte
Eu odeio digitar as palavras completas 'cabeça', 'resumo', 'nomes' toda vez, então uso aliases.
Você pode colocar aliases no seu arquivo .Rprofile, mas precisa usar o caminho completo para a função (por exemplo, utils :: head), caso contrário não funcionará.
EDIT: para responder sua pergunta, você pode usar o pacote colorout para ter cores diferentes no terminal. Legal! :-)
fonte
n
iria me morder, pessoalmente, na parte posterior durante a depuração..startup <- new.env()
assign("h", utils::head, env=.startup)
assign("n", base::names, env=.startup)
assign("ht", function(d) rbind(head(d,6),tail(d,6)) , env=.startup)
assign("s", base::summary, env=.startup)
attach(.startup)
sum <- base::summary
. Essa não foi uma ótima idéia.colorout
: "" "Este pacote foi arquivado:. É usado pontos de entrada não-API não é permitido pelas políticas CRAN" ""Aqui está o meu. Eu sempre uso o repositório principal do cran e tenho código para facilitar a fonte do código do pacote em desenvolvimento.
fonte
Eu gosto de salvar meu histórico de comandos R e disponibilizá-lo sempre que executo o R:
No shell ou .bashrc:
em .Rprofile:
fonte
Aqui estão duas funções que considero úteis para trabalhar com o Windows.
O primeiro converte
\
s em/
.O segundo abre o diretório de trabalho em uma nova janela do explorer.
fonte
.repath
é assim como chegar no meu .Rprofile.snippet wpp
`r paste("\"", gsub("\\\\", "/", readClipboard()), "\"", sep = "")`
Eu tenho esse truque mais dinâmico para usar a largura total do terminal, que tenta ler a variável de ambiente COLUMNS (no Linux):
Dessa forma, o R usará toda a largura, mesmo quando você redimensionar sua janela do terminal.
fonte
COLUMNS
não está definido, você pode tentarwidth = as.integer(system('tput cols',intern=TRUE)
como recuo.A maioria das minhas funções pessoais e bibliotecas carregadas estão no script Rfunctions.r
fonte
Aqui está no meu ~ / .Rprofile , projetado para Mac e Linux.
Isso facilita a visualização dos erros.
Eu odeio a escolha do menu CRAN, então defina uma boa.
Mais história!
O seguinte é para rodar no Mac OSX a partir do terminal (que eu prefiro muito ao R.app porque é mais estável e você pode organizar seu trabalho por diretório; também certifique-se de obter um bom ~ / .inputrc ). Por padrão, você obtém uma tela X11, que não parece tão boa; isso fornece uma exibição de quartzo igual à GUI. A
if
declaração deve entender o caso quando você estiver executando o R no terminal no Mac.E pré-carregue algumas bibliotecas,
onde util.r é um pacote aleatório de coisas que eu uso, sob fluxo.
Além disso, como outras pessoas mencionaram a largura do console, veja como eu faço isso.
Na verdade, isso não ocorre
.Rprofile
porque você precisa executá-lo novamente sempre que redimensionar a janela do terminal. Eu o tenho,util.r
então apenas o forneço conforme necessário.fonte
Aqui estão os meus:
fonte
?new.env
,?assign
e?sys.source
. Se você não conseguir fazê-lo funcionar, publique um novo Q no SO e tenho certeza de que obterá respostas.my.as.Date
pode ser substituído peloLubridate
pacote. Estou certo?fonte
Faça com que os data.frames sejam exibidos como 'head', apenas sem a necessidade de digitar 'head'
(De Como fazer com que a 'cabeça' seja aplicada automaticamente à saída? )
fonte
Muitas vezes, tenho uma cadeia de chamadas de depuração que preciso chamar e descomentá-las pode ser muito entediante. Com a ajuda da comunidade SO , procurei a seguinte solução e a inseri na minha
.Rprofile.site
.# BROWSER
está lá para minhas tarefas do Eclipse, para que eu tenha uma visão geral das chamadas do navegador na janela Modo de exibição de tarefas.fonte
O meu não é muito chique:
fonte
Eu faço muito trabalho com bancos de dados mysql, portanto, conectar imediatamente é uma dádiva de Deus. Eu só queria que houvesse uma maneira de listar os bancos de dados disponíveis, para que eu não precisasse lembrar de todos os nomes diferentes.
fonte
A publicação de Stephen Turner no .Rprofiles possui vários aliases úteis e funções de inicialização.
Encontro-me usando seu ht e hh frequentemente.
fonte
corner
que faz o mesmo que a suahh
função e um pouco mais. ;)Aqui está o meu, incluindo algumas das idéias mencionadas.
Duas coisas que você pode querer considerar:
.
fonte
Eu uso o seguinte para obter cacheSweave (ou pgfSweave) para trabalhar com o botão "Compilar PDF" no RStudio:
fonte
Mina inclui
options(menu.graphics=FALSE)
porque eu gosto de Disable / pop-up tcltk suprimir para a seleção espelho CRAN em R .fonte
Aqui está o meu. Nada muito inovador. Pensamentos sobre por que escolhas específicas:
stringsAsFactors
porque acho extremamente cansativo passá-lo como argumento toda vez que leio um arquivo CSV. Dito isso, ele já me causou um pouco de irritação ao usar o código escrito no meu computador habitual em um computador que não tinha meu perfil. Eu estou mantendo isso, no entanto, como os problemas que causou pálidos em comparação com os problemas que não costumam causar todos os dias.utils
pacote antesoptions(error=recover)
, ele não poderá se recuperar quando colocado dentro de uminteractive()
bloco..db
a minha configuração da caixa de depósito em vez deoptions(dropbox=...)
usá-la o tempo todo por dentrofile.path
e economiza muita digitação. O líder.
impede que ele apareçals()
.Sem mais delongas:
fonte
Aqui está um pequeno trecho para exportar tabelas para o LaTeX . Ele muda todos os nomes de colunas para o modo matemático para os muitos relatórios que escrevo. O resto do meu .Rprofile é bastante padrão e, em grande parte, coberto acima.
fonte
Defino meu tema de cores da estrutura no meu perfil. Aqui estão dois outros ajustes que eu uso:
fonte
setwd
substituição funcionará melhor na versão:utils::assignInNamespace("setwd",function(dir) {on.exit(setWindowTitle(base::getwd())); .Internal(setwd(dir))}, "base")
Eu tenho uma variável de ambiente R_USER_WORKSPACE que aponta para o diretório superior dos meus pacotes. No .Rprofile, defino uma função devlib que define o diretório de trabalho (para que data () funcione) e origine todos os arquivos .R no subdiretório R. É bastante semelhante à função l () de Hadley acima.
fonte
Eu achei duas funções realmente necessárias: primeiro, quando defini
debug()
várias funções e resolvi o bug, então queroundebug()
todas as funções - não uma por uma. Aundebug_all()
função adicionada como resposta aceita aqui é a melhor.Segundo, quando defini muitas funções e procuro um nome de variável específico, é difícil encontrá-lo em todos os resultados do
ls()
, incluindo os nomes das funções. Alsnofun()
função postada aqui é realmente boa.fonte