Mudanca da classe de dados e modificacao de valor desses

Prezados, segue o codigo para o exemplo: setwd('C:/Users/Leonardo/Desktop/') ##Baixando os dados da internet setInternet2(FALSE) #desativa setInternet2(NA) #mostra o status base<- ' http://power.larc.nasa.gov/cgi-bin/cgiwrap/solar/agro.cgi?email=agroclim%40l... ' url<- paste0(base,sep=-22.7, '&lon=', sep = -48, '&ms=1&ds=1&ys=', sep = 1983, '&me=12&de=31&ye=', sep = 1986, '&p=toa_dwn&p=swv_dwn&p=lwv_dwn&p=T2M&p=T2MN&p=T2MX&p=RH2M&p=DFP2M&p=RAIN&p=WS10M&submit=Submit') download.file(url, 'teste.txt', method = "auto", quiet = FALSE, mode = "w", cacheOK = TRUE) ## dados<- read.table('teste.txt', sep= '', dec = '.', skip=24); head(dados) dados<- dados[,-c(3,5, 10)]; head(dados) colnames(dados)<- c('ano', 'dj', 'Qg', 'tmed', 'tmin', 'tmax', 'ur', 'chuva', 'u10'); head(dados) dados[180:190,] # dados onde comeca a haver dados de Qg (os dados estao corretos) dados$Qg[dados$Qg == '-']<- NA; dados[180:190,] ##apresentando os dados de Qg ja com NA class(dados$Qg) # dados como factor dados$Qg<- as.numeric(dados$Qg); class(dados$Qg) ##Ok, eles estao como 'numeric' dados[180:190,] #na transformacao, os valores de Qg mudaram ##### Alguem poderia me ajudar a inserir os valores NA onde estao apresentados '-', entretanto sem que modifique o valor original dos dados (os que nao sao NA)?? obrigado, Leonardo

Da para informar o valor do NA no read.table read.table('teste.txt', sep= '', dec = '.', skip=24, *na = '-'*) O problema que tu está tendo é que ao fazer as.numeric() num fator, tu pega a posição dos labels (o 1o label, o 2o label, ..., por isso tu obteve números inteiros) e não o labels:
(f <- factor(3:1, levels = 3:1)) [1] 3 2 1 Levels: 3 2 1 as.numeric(f) [1] 1 2 3
Uma solução, que está no help da função factor(), é usar:
as.numeric(levels(f))[f] [1] 3 2 1
On Fri, Sep 12, 2014 at 11:35 AM, Leonardo Monteiro < monteiroleonardo6@gmail.com> wrote:
Prezados, segue o codigo para o exemplo:
setwd('C:/Users/Leonardo/Desktop/')
##Baixando os dados da internet setInternet2(FALSE) #desativa setInternet2(NA) #mostra o status
base<- ' http://power.larc.nasa.gov/cgi-bin/cgiwrap/solar/agro.cgi?email=agroclim%40l... '
url<- paste0(base,sep=-22.7, '&lon=', sep = -48, '&ms=1&ds=1&ys=', sep = 1983, '&me=12&de=31&ye=', sep = 1986, '&p=toa_dwn&p=swv_dwn&p=lwv_dwn&p=T2M&p=T2MN&p=T2MX&p=RH2M&p=DFP2M&p=RAIN&p=WS10M&submit=Submit')
download.file(url, 'teste.txt', method = "auto", quiet = FALSE, mode = "w", cacheOK = TRUE)
## dados<- read.table('teste.txt', sep= '', dec = '.', skip=24); head(dados)
dados<- dados[,-c(3,5, 10)]; head(dados)
colnames(dados)<- c('ano', 'dj', 'Qg', 'tmed', 'tmin', 'tmax', 'ur', 'chuva', 'u10'); head(dados)
dados[180:190,] # dados onde comeca a haver dados de Qg (os dados estao corretos)
dados$Qg[dados$Qg == '-']<- NA; dados[180:190,] ##apresentando os dados de Qg ja com NA
class(dados$Qg) # dados como factor
dados$Qg<- as.numeric(dados$Qg); class(dados$Qg) ##Ok, eles estao como 'numeric'
dados[180:190,] #na transformacao, os valores de Qg mudaram
#####
Alguem poderia me ajudar a inserir os valores NA onde estao apresentados '-', entretanto sem que modifique o valor original dos dados (os que nao sao NA)??
obrigado,
Leonardo
_______________________________________________ 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 (2)
-
Leonardo Monteiro
-
Rodrigo Coster