
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@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@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br