Extrair linhas específicas de um data.frame

Boa tarde! Tenho um arquivo em que uma das variáveis tem o seguinte formato: data 1958Q3 2001Q1 1989M7 1948M12 1949 2011 . . . E assim por diante. Ou seja, tenho informações quadrimestrais, mensais e anuais. Todavia, gostaria de obter um novo data.frame apenas com os dados anuais. Alguém saberia como fazer isso? Desde já muito obrigado! -- *Alexandre Rodrigues Loures* Doutorando em Economia Aplicada Universidade Federal da Paraíba - UFPB Centro de Ciências Sociais Aplicadas - CCSA Programa de Pós-Graduação em Economia - PPGE e-Mail: alexandre.loures@ymail.com Site: www.ccsa.ufpb.br/ppge

xx <- c(1995:2000, paste(1995:1999, c('M', 'Q'), sep = "")) grepl(pattern = '^[0-9]{4}$', x = xx) Em ter, 17 de mar de 2015 às 11:35, Alexandre Loures < alexandre.loures@ymail.com> escreveu:
Boa tarde!
Tenho um arquivo em que uma das variáveis tem o seguinte formato:
data
1958Q3 2001Q1 1989M7 1948M12 1949 2011 . . .
E assim por diante. Ou seja, tenho informações quadrimestrais, mensais e anuais. Todavia, gostaria de obter um novo data.frame apenas com os dados anuais.
Alguém saberia como fazer isso?
Desde já muito obrigado!
-- *Alexandre Rodrigues Loures* Doutorando em Economia Aplicada Universidade Federal da Paraíba - UFPB Centro de Ciências Sociais Aplicadas - CCSA Programa de Pós-Graduação em Economia - PPGE e-Mail: alexandre.loures@ymail.com Site: www.ccsa.ufpb.br/ppge _______________________________________________ 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.

Resolvido. Muito obrigado pessoal! On 17/03/2015 11:40, Luis G. S. e Silva wrote:
xx <- c(1995:2000, paste(1995:1999, c('M', 'Q'), sep = "")) grepl(pattern = '^[0-9]{4}$', x = xx)
Em ter, 17 de mar de 2015 às 11:35, Alexandre Loures <alexandre.loures@ymail.com <mailto:alexandre.loures@ymail.com>> escreveu:
Boa tarde!
Tenho um arquivo em que uma das variáveis tem o seguinte formato:
data
1958Q3 2001Q1 1989M7 1948M12 1949 2011 . . .
E assim por diante. Ou seja, tenho informações quadrimestrais, mensais e anuais. Todavia, gostaria de obter um novo data.frame apenas com os dados anuais.
Alguém saberia como fazer isso?
Desde já muito obrigado!
-- *Alexandre Rodrigues Loures* Doutorando em Economia Aplicada Universidade Federal da Paraíba - UFPB Centro de Ciências Sociais Aplicadas - CCSA Programa de Pós-Graduação em Economia - PPGE e-Mail: alexandre.loures@ymail.com <mailto:alexandre.loures@ymail.com> Site: www.ccsa.ufpb.br/ppge <http://www.ccsa.ufpb.br/ppge> _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br <mailto: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.
_______________________________________________ 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.
-- *Alexandre Rodrigues Loures* Doutorando em Economia Aplicada Universidade Federal da Paraíba - UFPB Centro de Ciências Sociais Aplicadas - CCSA Programa de Pós-Graduação em Economia - PPGE e-Mail: alexandre.loures@ymail.com Site: www.ccsa.ufpb.br/ppge

Se teus dados forem string (e não factor), da para fazer assim: dados <- data.frame(Epoca = c('1958Q3', '2001Q1', '1989M7', '1948M12', '1949', '2011'), Indice = rnorm(6), stringsAsFactors = FALSE) subset(dados, nchar(dados$Epoca) == 4) 2015-03-17 11:34 GMT-03:00 Alexandre Loures <alexandre.loures@ymail.com>:
Boa tarde!
Tenho um arquivo em que uma das variáveis tem o seguinte formato:
data
1958Q3 2001Q1 1989M7 1948M12 1949 2011 . . .
E assim por diante. Ou seja, tenho informações quadrimestrais, mensais e anuais. Todavia, gostaria de obter um novo data.frame apenas com os dados anuais.
Alguém saberia como fazer isso?
Desde já muito obrigado!
-- *Alexandre Rodrigues Loures* Doutorando em Economia Aplicada Universidade Federal da Paraíba - UFPB Centro de Ciências Sociais Aplicadas - CCSA Programa de Pós-Graduação em Economia - PPGE e-Mail: alexandre.loures@ymail.com Site: www.ccsa.ufpb.br/ppge
_______________________________________________ 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.

se a classe da sua variável for "character" que provavelmente é você pode fazer df2 <- df1[nchar(df1$variavelemquestao) == 4), ] Em 17 de março de 2015 11:34, Alexandre Loures <alexandre.loures@ymail.com> escreveu:
Boa tarde!
Tenho um arquivo em que uma das variáveis tem o seguinte formato:
data
1958Q3 2001Q1 1989M7 1948M12 1949 2011 . . .
E assim por diante. Ou seja, tenho informações quadrimestrais, mensais e anuais. Todavia, gostaria de obter um novo data.frame apenas com os dados anuais.
Alguém saberia como fazer isso?
Desde já muito obrigado!
-- *Alexandre Rodrigues Loures* Doutorando em Economia Aplicada Universidade Federal da Paraíba - UFPB Centro de Ciências Sociais Aplicadas - CCSA Programa de Pós-Graduação em Economia - PPGE e-Mail: alexandre.loures@ymail.com Site: www.ccsa.ufpb.br/ppge
_______________________________________________ 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.
-- Rafael Garcia Cunha YNWA

Uma sugestão... data <- c("1958Q3", "2001Q1", "1989M7", "1948M12", "1949", "2011") grep("[0-9]{4}$", data, val=T) ### texto com 4 digitos grep("[0-9].*Q", data, val=T) ### texto que contém Q grep("[0-9].*M", data, val=T) ### texto que contém Q Éder Comunello <c <comunello.eder@gmail.com>omunello.eder@gmail.com> Dourados, MS - [22 16.5'S, 54 49'W] Em 17 de março de 2015 10:43, Rafael Garcia Cunha <rafareds@gmail.com> escreveu:
se a classe da sua variável for "character" que provavelmente é você pode fazer
df2 <- df1[nchar(df1$variavelemquestao) == 4), ]
Em 17 de março de 2015 11:34, Alexandre Loures <alexandre.loures@ymail.com
escreveu:
Boa tarde!
Tenho um arquivo em que uma das variáveis tem o seguinte formato:
data
1958Q3 2001Q1 1989M7 1948M12 1949 2011 . . .
E assim por diante. Ou seja, tenho informações quadrimestrais, mensais e anuais. Todavia, gostaria de obter um novo data.frame apenas com os dados anuais.
Alguém saberia como fazer isso?
Desde já muito obrigado!
-- *Alexandre Rodrigues Loures* Doutorando em Economia Aplicada Universidade Federal da Paraíba - UFPB Centro de Ciências Sociais Aplicadas - CCSA Programa de Pós-Graduação em Economia - PPGE e-Mail: alexandre.loures@ymail.com Site: www.ccsa.ufpb.br/ppge
_______________________________________________ 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.
-- Rafael Garcia Cunha
YNWA
_______________________________________________ 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.

Complementando a resposta anterior: data <- data.frame(x=c("1958Q3", "2001Q1", "1989M7", "1948M12", "1949", "2011"), y=runif(6,0,1)) data (ano <- data[grep("[0-9]{4}$", data$x),]) (quad <- data[grep("[0-9].*Q", data$x),]) (mes <- data[grep("[0-9].*M", data$x),]) Éder Comunello <c <comunello.eder@gmail.com>omunello.eder@gmail.com> Dourados, MS - [22 16.5'S, 54 49'W]

Na mesma linha da solução do Luis G S e Silva: dd <- c("958Q3", "2001Q1", "1989M7", "1948M12", "1949", "2011") dd[!grepl("[A-Z]", dd)] 2015-03-17 11:59 GMT-03:00 Éder Comunello <comunello.eder@gmail.com>:
Complementando a resposta anterior:
data <- data.frame(x=c("1958Q3", "2001Q1", "1989M7", "1948M12", "1949", "2011"), y=runif(6,0,1))
data (ano <- data[grep("[0-9]{4}$", data$x),]) (quad <- data[grep("[0-9].*Q", data$x),]) (mes <- data[grep("[0-9].*M", data$x),])
Éder Comunello <c <comunello.eder@gmail.com>omunello.eder@gmail.com> Dourados, MS - [22 16.5'S, 54 49'W]
_______________________________________________ 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.
-- Marcos F. Silva http://sites.google.com/site/marcosfs2006
participantes (6)
-
Alexandre Loures
-
Luis G. S. e Silva
-
Marcos Silva
-
Rafael Garcia Cunha
-
Rodrigo Coster
-
Éder Comunello