subset de observações específicas de uma variável

Boa noite! Tenho uma base de dados em que uma das variáveis (HScode) possui três níveis. Por exemplo, 01 0101 010122 0102 010233 02 0201 020179 Contudo preciso de um subset apenas com as observações com quatro dígitos. Ou seja, 0101 0102 0201 structure(list(reporter = c("Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania"), HScode = c("01", "0101", "010110", "010190", "0102", "010210", "010290", "0103", "010310", "010391", "010392", "0104", "010410", "010420", "0105", "010511", "010512", "010519", "010594", "010599", "0106", "010611", "010612", "010619", "010620", "010631", "010632", "010639", "010690", "02", "0201", "020110", "020120", "020130", "0202"), boundtariff = c("6.571969696969697", "8.75", "7.5", "10", "7.291666666666667", "5", "9.583333333333334", "5", "5", "5", "5", "5", "5", "5", "9.5", "5", "5", "5", "12.5", "20", "5", "5", "5", "5", "5", "5", "5", "5", "5", "10.27914614121511", "10", "10", "10", "10", "10")), datalabel = "", time.stamp = " 7 Jul 2016 22:53", .Names = c("reporter", "HScode", "boundtariff"), formats = c("%54s", "%9s", "%20s"), types = c(54L, 7L, 20L), val.labels = c("", "", ""), var.labels = c("", "", ""), version = 12L, row.names = c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35"), class = "data.frame") 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 Site: www.ccsa.ufpb.br/ppge orcid www.orcid.org/0000-0002-1288-0135

Talvez subset() com o teste nchar(HScode) ==4 resolva. Em 7 de jul de 2016 11:36 PM, "Alexandre Loures via R-br" < r-br@listas.c3sl.ufpr.br> escreveu:
Boa noite!
Tenho uma base de dados em que uma das variáveis (HScode) possui três níveis. Por exemplo,
01 0101 010122 0102 010233 02 0201 020179
Contudo preciso de um subset apenas com as observações com quatro dígitos. Ou seja,
0101 0102 0201
structure(list(reporter = c("Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania"), HScode = c("01", "0101", "010110", "010190", "0102", "010210", "010290", "0103", "010310", "010391", "010392", "0104", "010410", "010420", "0105", "010511", "010512", "010519", "010594", "010599", "0106", "010611", "010612", "010619", "010620", "010631", "010632", "010639", "010690", "02", "0201", "020110", "020120", "020130", "0202"), boundtariff = c("6.571969696969697", "8.75", "7.5", "10", "7.291666666666667", "5", "9.583333333333334", "5", "5", "5", "5", "5", "5", "5", "9.5", "5", "5", "5", "12.5", "20", "5", "5", "5", "5", "5", "5", "5", "5", "5", "10.27914614121511", "10", "10", "10", "10", "10")), datalabel = "", time.stamp = " 7 Jul 2016 22:53", .Names = c("reporter", "HScode", "boundtariff"), formats = c("%54s", "%9s", "%20s"), types = c(54L, 7L, 20L), val.labels = c("", "", ""), var.labels = c("", "", ""), version = 12L, row.names = c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35"), class = "data.frame")
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 Site: www.ccsa.ufpb.br/ppge [image: orcid] www.orcid.org/0000-0002-1288-0135
_______________________________________________ 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.

sugestão: DADOS[nchar(DADOS$HScode) == 4,] ou subset(DADOS, nchar(HScode) == 4) saudações Em 07/07/2016 23:36, Alexandre Loures via R-br escreveu:
Boa noite!
Tenho uma base de dados em que uma das variáveis (HScode) possui três níveis. Por exemplo,
01 0101 010122 0102 010233 02 0201 020179
Contudo preciso de um subset apenas com as observações com quatro dígitos. Ou seja,
0101 0102 0201
structure(list(reporter = c("Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania", "Albania"), HScode = c("01", "0101", "010110", "010190", "0102", "010210", "010290", "0103", "010310", "010391", "010392", "0104", "010410", "010420", "0105", "010511", "010512", "010519", "010594", "010599", "0106", "010611", "010612", "010619", "010620", "010631", "010632", "010639", "010690", "02", "0201", "020110", "020120", "020130", "0202"), boundtariff = c("6.571969696969697", "8.75", "7.5", "10", "7.291666666666667", "5", "9.583333333333334", "5", "5", "5", "5", "5", "5", "5", "9.5", "5", "5", "5", "12.5", "20", "5", "5", "5", "5", "5", "5", "5", "5", "5", "10.27914614121511", "10", "10", "10", "10", "10")), datalabel = "", time.stamp = " 7 Jul 2016 22:53", .Names = c("reporter", "HScode", "boundtariff"), formats = c("%54s", "%9s", "%20s"), types = c(54L, 7L, 20L), val.labels = c("", "", ""), var.labels = c("", "", ""), version = 12L, row.names = c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35"), class = "data.frame")
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 Site: www.ccsa.ufpb.br/ppge orcid www.orcid.org/0000-0002-1288-0135
_______________________________________________ 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)
-
Alexandre Loures
-
Marcos Silva
-
salah