Posso forçar R a usar números regulares em vez de usar a e+10
notação-like? Eu tenho:
1.810032e+09
# and
4
dentro do mesmo vetor e deseja ver:
1810032000
# and
4
Estou criando saída para um programa antiquado e preciso escrever um arquivo de texto usando cat
. Isso funciona bem até agora, mas simplesmente não posso usar a e+10
notação lá.
r
number-formatting
options
scientific-notation
defaults
Matt Bannert
fonte
fonte
Respostas:
Esta é uma área um pouco cinzenta. Você precisa lembrar que R sempre chamará um método de impressão, e esses métodos de impressão escutam algumas opções. Incluindo 'scipen' - uma penalidade para exibição científica. De
help(options)
:Exemplo:
Dito isto, ainda acho que vale a pena. A maneira mais direta é usar
sprintf()
com largura explícita, por exemplosprintf("%.5f", ran2)
.fonte
options("scipen"=0, "digits"=7)
(esses são os valores padrão)options("scipen"=100, "digits"=4)
para o topo do código e o que não fica abaixo dele ... com as notas apropriadas. Pode ser confuso para quem está procurando uma solução rápida (e o Google mostra a primeira como resultado).Isso pode ser alcançado desativando a notação científica em R.
fonte
Minha resposta favorita:
Isso dá o que você deseja, sem ter que se preocupar com as configurações de R.
Observe que ele retorna uma cadeia de caracteres em vez de um objeto numérico
fonte
justified = "none"
ou haverá espaços preenchendo-os no mesmo comprimento.format(1e6, scientific=FALSE)
retorna"1000000"
enquantoas.character(1e6)
retorna"1e+06"
, então há uma diferença entre os dois métodos.Coloque
options(scipen = 999)
no seu arquivo .Rprofile para que seja executado automaticamente por padrão . (Não confie em fazê-lo manualmente.)(Isso está dizendo algo diferente de outras respostas: como?
fonte