
Caros (as) membros da r-br Seria possível substituir todos valores nulos ("NA") por algum valor específico? Como por exemplo pelo valor 1 ou somente dizendo se NA entao vazio? Exemplo de #RCMR #RCMR dados <- data.frame(parcela=rep(1:3, each=3), y=rnorm(9)) dados$substituir <- c(1,2,3,4,5,"NA",7, "NA",9) dados[2,1] <- "NA" dados[5,1] <- "NA" dados dados[which(dados=="NA")] <- 0 #nao rodou, sei que se especifico a coluna este comando funciona, # porem se tenho um data frame com varias colunas é um problema # ou para substituir os NA por vazios dados[which(dados=="NA")] <- "" Desde ja obrigado ==================================== Samuel P. C. Carvalho Mestre em Ciências Florestais [UFLA] Doutorando em Recursos Florestais [ESALQ/USP] =============================================

Alguns detalhes antes da resposta: 1) "NA" (note as aspas) nao e' valor nulo... e' a "palavra" NA (como se fosse sodio, de quimica, todo em maiusculo). O valor nulo e' a expressao especial NA (sem aspas). 2) a outra observacao e' que quando vc muda um valor de uma coluna inicialmente numerica para um valor que e' uma palavra, entao toda a coluna e' transformada para "palavras". Para entender o que eu quero dizer, veja: x = c(1, 2, 3, 4) class(x) x[1]+x[2] x[3] = NA class(x) x[1]+x[2] x[3] = "NA" class(x) x[1]+x[2] Observe acima que quando a classe do vetor muda de numerico para character, o R nao sabe mais como somar... Afinal, a soma da palavra "1" com a palavra "2" nao e' uma operacao definida. Detalhe, o seu valor vazio "" e' tambem uma "palavra" e mudara' a classe do objeto... Teste. Dito isso e assumindo que vc nao queira mudar as classes dos seus vetores: set.seed(1) dados <- data.frame(parcela=rep(1:3, each=3), y=rnorm(9)) dados$substituir <- c(1,2,3,4,5,NA,7,NA,9) dados[2,1] <- NA dados[5,1] <- NA dados[is.na(dados)] <- 0 dados b 2012/10/2 Samuel Carvalho <samukajm@yahoo.com.br>:
Caros (as) membros da r-br Seria possível substituir todos valores nulos ("NA") por algum valor específico? Como por exemplo pelo valor 1 ou somente dizendo se NA entao vazio? Exemplo de #RCMR #RCMR dados <- data.frame(parcela=rep(1:3, each=3), y=rnorm(9)) dados$substituir <- c(1,2,3,4,5,"NA",7, "NA",9) dados[2,1] <- "NA" dados[5,1] <- "NA" dados dados[which(dados=="NA")] <- 0 #nao rodou, sei que se especifico a coluna este comando funciona, # porem se tenho um data frame com varias colunas é um problema # ou para substituir os NA por vazios dados[which(dados=="NA")] <- ""
Desde ja obrigado
==================================== Samuel P. C. Carvalho Mestre em Ciências Florestais [UFLA] Doutorando em Recursos Florestais [ESALQ/USP] =============================================
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.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) e forneça código mínimo reproduzível.

user regular expresson junto com um loop. for (i in 1:6){ plan$var <- str_replace(plan$var, pattern=var.names.original, replacement= var.names.substituto) } Alisson Lucrécio da Costa ________________________________ From: Samuel Carvalho <samukajm@yahoo.com.br> To: r-br <r-br@listas.c3sl.ufpr.br> Sent: Tuesday, October 2, 2012 6:32 PM Subject: [R-br] substituir valores nulos Caros (as) membros da r-br Seria possível substituir todos valores nulos ("NA") por algum valor específico? Como por exemplo pelo valor 1 ou somente dizendo se NA entao vazio? Exemplo de #RCMR #RCMR dados <- data.frame(parcela=rep(1:3, each=3), y=rnorm(9)) dados$substituir <- c(1,2,3,4,5,"NA",7, "NA",9) dados[2,1] <- "NA" dados[5,1] <- "NA" dados dados[which(dados=="NA")] <- 0 #nao rodou, sei que se especifico a coluna este comando funciona, # porem se tenho um data frame com varias colunas é um problema # ou para substituir os NA por vazios dados[which(dados=="NA")] <- "" Desde ja obrigado ==================================== Samuel P. C. Carvalho Mestre em Ciências Florestais [UFLA] Doutorando em Recursos Florestais [ESALQ/USP] ============================================= _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.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) e forneça código mínimo reproduzível.

plan$var <- str_replace(plan$var, pattern=var.names.original, replacement= var.names.substituto) na realidade vc nao precisa do usar o loop Alisson Lucrécio da Costa ________________________________ From: Alisson Lucrecio <alissonluc@yahoo.com.br> To: "r-br@listas.c3sl.ufpr.br" <r-br@listas.c3sl.ufpr.br>; Samuel Carvalho <samukajm@yahoo.com.br> Sent: Tuesday, October 2, 2012 6:47 PM Subject: Re: [R-br] substituir valores nulos user regular expresson junto com um loop. for (i in 1:6){ plan$var <- str_replace(plan$var, pattern=var.names.original, replacement= var.names.substituto) } Alisson Lucrécio da Costa ________________________________ From: Samuel Carvalho <samukajm@yahoo.com.br> To: r-br <r-br@listas.c3sl.ufpr.br> Sent: Tuesday, October 2, 2012 6:32 PM Subject: [R-br] substituir valores nulos Caros (as) membros da r-br Seria possível substituir todos valores nulos ("NA") por algum valor específico? Como por exemplo pelo valor 1 ou somente dizendo se NA entao vazio? Exemplo de #RCMR #RCMR dados <- data.frame(parcela=rep(1:3, each=3), y=rnorm(9)) dados$substituir <- c(1,2,3,4,5,"NA",7, "NA",9) dados[2,1] <- "NA" dados[5,1] <- "NA" dados dados[which(dados=="NA")] <- 0 #nao rodou, sei que se especifico a coluna este comando funciona, # porem se tenho um data frame com varias colunas é um problema # ou para substituir os NA por vazios dados[which(dados=="NA")] <- "" Desde ja obrigado ==================================== Samuel P. C. Carvalho Mestre em Ciências Florestais [UFLA] Doutorando em Recursos Florestais [ESALQ/USP] ============================================= _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.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) e forneça código mínimo reproduzível.
participantes (3)
-
Alisson Lucrecio
-
Benilton Carvalho
-
Samuel Carvalho