[R-br] Eliminar NA e merge com colunas de dif tamanho

Eder David Borges da Silva eder em leg.ufpr.br
Sábado Junho 11 10:53:47 BRT 2011


Alexandre,
acho que isso pode resolver:
teste <- read.table("teste.txt",sep=";", header=T, colClasses=c("Date",
"numeric","numeric","numeric","numeric","character","numeric","numeric","character",
"numeric","numeric","numeric","numeric"))
str(teste)
head(teste)
teste$Data = format(as.Date(teste$Data,'%d-%m-%y'))
dim(teste)

summary(teste)

current = as.Date("1975-01-01")
final = as.Date("1977-10-10")
Data_1 <- data.frame(Data=seq(from=current,to = final, 1))

teste1 <- teste[!is.na(teste$Data),]

teste1$Data <- as.factor(teste1$Data)
Data_1$Data <- as.factor(Data_1$Data)
Data_1$Var <- NA

dados.final <- merge(Data_1,teste1,by.x = "Data", by.y = "Data", all= TRUE)
dados.final <- dados.final[,-2]##retirando var
head(dados.final)

Att
Éder

Em 10 de junho de 2011 18:37, Alexandre Heinemann <abh900 em gmail.com>escreveu:

> Caros Colegas,
>
> Estou com um problema de programação no R.
>
> No seguinte arquivo:
> http://sharex.xpg.com.br/files/6386884446/teste.txt.html, a coluna 1
> representa a data. Essa data
> não considera os dias 31 dos respectivos meses. Nessa coluna Data ha  NAs
> que representam datas inxistentes (30/2 e 29/2
> para os anos que esse não existe). Necessito eliminar as
> linhas que possuem NA (somente para a coluna Data).
>
> Após eliminar os NAs, necessito fazer um "merge" com um vetor criado abaixo
> Data_1. Esse vetor Data_1 representa
> as datas "reais", ou seja, o ano com 365 e ou 366 dias. Esse merge deve ser
> feito em função da coluna teste$Data, com a finalidade
> de criar as datas referentes aos dias 31, preenchendo com NA as restantes.
>
> A saída que eu espero é:
>
> Data         prec_mm    tmax_C  tmin_C rad_W.m2              file_name
> Lat  Long Cenario rad_MJ.m2 tmax_memo tmin_memo rad_memo
> 1977-08-30 3.40726e-06 36.9722 23.0109 279.2510 lat_0.5_lon_46.2_P.dat -0.5
> -46.2  P 24.127286  35.89341  22.94294 23.02423
> 1977-08-31 NA        NA    NA    NA    NA            NA   NA      NA
> NA    NA      NA       NA
> 1977-09-01 3.87843e-04 36.8744 23.0071 263.9960 lat_0.5_lon_46.2_P.dat -0.5
> -46.2  P 22.809254  36.51460  22.99073 23.90967
>
> O arquivo no qual estou trabalhando tem  1517400  linhas.
>
>
> http://sharex.xpg.com.br/files/6386884446/teste.txt.html (download)
> teste <- read.table("teste.txt",sep=";", header=T, colClasses=c("Date",
> "numeric","numeric","numeric","numeric","character","numeric","numeric","character",
> "numeric","numeric","numeric","numeric"))
> str(teste)
> head(teste)
> teste$Data = format(as.Date(teste$Data,'%d-%m-%y'))
> dim(teste)
>
> current = as.Date("1975-01-01")
> final = as.Date("1977-10-10")
> Data_1 <- seq(from=current,to = final, 1)
> length(Data_1)
>
> Obrigado,
>
> Alexandre
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20110611/4880a534/attachment.html>


Mais detalhes sobre a lista de discussão R-br