parametros booleano e numerico

olá a todos, alguem sabe o motivo do valor 1 não ter o mesmo efeito de TRUE (booleano) na função memory.size? fiz alguns testes e acabei com essa duvida. Grato Cleber ---------------------------
memory.size() [1] 23.86 memory.size(max=TRUE) [1] 25.62 memory.size(max=FALSE) [1] 23.86
memory.size(max=1) [1] 7935.37 Warning message: In memory.size(max) : cannot decrease memory limit: ignored memory.size(max=0) [1] 7935.37 Warning message: In memory.size(max) : cannot decrease memory limit: ignored
memory.size function (max = FALSE) round(.Internal(memory.size(max)), 2L) <bytecode: 0x00000000054d5738> <environment: namespace:utils>
memory.size(max=(1==TRUE)) [1] 25.62 memory.size(max=(0==TRUE)) [1] 23.92
23==TRUE [1] FALSE 1==TRUE [1] TRUE 23==TRUE [1] FALSE
0==FALSE [1] TRUE 2==FALSE [1] FALSE
sessionInfo() R version 2.15.0 (2012-03-30) Platform: x86_64-pc-mingw32/x64 (64-bit)
locale: [1] LC_COLLATE=Portuguese_Brazil.1252 LC_CTYPE=Portuguese_Brazil.1252 [3] LC_MONETARY=Portuguese_Brazil.1252 LC_NUMERIC=C [5] LC_TIME=Portuguese_Brazil.1252 attached base packages: [1] stats graphics grDevices utils datasets methods base

memory.size() aceita um argumento logico (isso deve estar listado na documentacao)... agora vc pode testar: is.logical(1) e vc vai ter FALSE... entao vc nao pode esperar que a memory.size() funcione como esperado ao usar um argumento de tipo invalido para a funcao. b

obrigado pela resposta. eu entendi sua explicação, porém acho que minha pergunta foi mal formulada :-( refazendo a pergunta: Há algum motivo especial para que no parametro das funções não haja coerção de tipo ?? entendo que 1 não é booleano mas pode sofrer coerção para esse tipo. grato pela atenção. cleber Em 04/04/2012 21:42, Benilton Carvalho escreveu:
memory.size() aceita um argumento logico (isso deve estar listado na documentacao)...
agora vc pode testar:
is.logical(1)
e vc vai ter FALSE... entao vc nao pode esperar que a memory.size() funcione como esperado ao usar um argumento de tipo invalido para a funcao.
b

Cleber, Não são todas as funções que possuem comportamento similar a memory.size, perceba: ls(all = 1) ls(all = 0) O que ocorre é que a função memory.size, além de receber um objeto lógico, aceita também valores para definição de limites de memória, não permitindo diminuir o valor existente: memory.limit() # 1535 memory.size() # 10.51 memory.size(max = 9) # cannot decrease memory limit: ignored memory.size(max = 2000) # 2000 memory.limit() # 2000 2012/4/4 Cleber N.Borges <klebyn@yahoo.com.br>
obrigado pela resposta. eu entendi sua explicação, porém acho que minha pergunta foi mal formulada :-(
refazendo a pergunta:
Há algum motivo especial para que no parametro das funções não haja coerção de tipo ??
entendo que 1 não é booleano mas pode sofrer coerção para esse tipo.
grato pela atenção.
cleber
Em 04/04/2012 21:42, Benilton Carvalho escreveu:
memory.size() aceita um argumento logico (isso deve estar listado na
documentacao)...
agora vc pode testar:
is.logical(1)
e vc vai ter FALSE... entao vc nao pode esperar que a memory.size() funcione como esperado ao usar um argumento de tipo invalido para a funcao.
b
______________________________**_________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/**cgi-bin/mailman/listinfo/r-br<https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-**guia<http://www.leg.ufpr.br/r-br-guia>) e forneça código mínimo reproduzível.
-- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40" S 49° 16' 22" O

obrigado. agora ficou claro... eu levei muito a sério o que tá escrito no help: --- 'memory.size' reports the current or maximum memory allocation of the 'malloc' function used in this version of R. 'memory.limit' reports or increases the limit in force on the total allocation. --- então estava considerando que a função "memory.size" só permitia extrair informação e não serviria para ajustar nada... o que é falso. Acho que do jeito que tá escrito, dá margem a interpretação errada. Mas de todo jeito, agora tá claro o que acontecendo. Obrigado. Cleber Em 04/04/2012 22:54, Henrique Dallazuanna escreveu:
Cleber,
Não são todas as funções que possuem comportamento similar a memory.size, perceba:
ls(all = 1) ls(all = 0)
O que ocorre é que a função memory.size, além de receber um objeto lógico, aceita também valores para definição de limites de memória, não permitindo diminuir o valor existente:
memory.limit() # 1535
memory.size() # 10.51
memory.size(max = 9) # cannot decrease memory limit: ignored
memory.size(max = 2000) # 2000
memory.limit() # 2000
2012/4/4 Cleber N.Borges <klebyn@yahoo.com.br <mailto:klebyn@yahoo.com.br>>
obrigado pela resposta. eu entendi sua explicação, porém acho que minha pergunta foi mal formulada :-(
refazendo a pergunta:
Há algum motivo especial para que no parametro das funções não haja coerção de tipo ??
entendo que 1 não é booleano mas pode sofrer coerção para esse tipo.
grato pela atenção.
cleber
Em 04/04/2012 21:42, Benilton Carvalho escreveu:
memory.size() aceita um argumento logico (isso deve estar listado na documentacao)...
agora vc pode testar:
is.logical(1)
e vc vai ter FALSE... entao vc nao pode esperar que a memory.size() funcione como esperado ao usar um argumento de tipo invalido para a funcao.
b
_______________________________________________
participantes (3)
-
Benilton Carvalho
-
Cleber N.Borges
-
Henrique Dallazuanna