[R-br] Digest R-br, volume 6, assunto 12

Benilton Carvalho beniltoncarvalho em gmail.com
Quinta Agosto 11 09:12:32 BRT 2011


A verdade, Leonard, e' que o que "mata" a opcao 1 e' a conversao da
matriz logica is.na(x) para valores *reais* (para que a comparacao com
1 possa ser realizada).

Muitos usuarios sao surpreendidos com os seguintes resultados:

is.double(1) ## TRUE
is.integer(1) ## FALSE

Entao, a expressao

is.na(x) == 1

vai exigir a conversao para numeros reais, que usa mais memoria e
tempo para a conversao...

Agora, se vc tiver o previo conhecimento de que essa substituicao deve
acontecer em apenas uma pequena fracao dos dados, vc pode matar a pau
com:

x[which(is.na(x))] <- .1

Entretanto, e' importante notar que esses ganhos sao substanciais
apenas para conjuntos de dados de grandes volumes ou atividades que
sejam repetidas muitas e muitas vezes. Se for algo a ser executado
apenas uma vez num conjunto de dados pequeno, o que o usuario fara'
com os 3ms que ele economizou?

b


Mais detalhes sobre a lista de discussão R-br