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
_______________________________________________
R-br mailing list
[email protected]
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código 
mínimo reproduzível.

Responder a