[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