
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