
Caros, como eu poderia escrever um loop para retirar todos os caracateres que estão antes e depois da "/" na string abaixo e colocando-os em novas variáveis? Ex. data <-c("155 - VITAL DO REGO FILHO - PB - Senador", "1111 - - PP - - Deputado Federal / 25888 - ATAIDES MENDES PEDROSA - PB - Deputado Estadual", "1111 - - PP - - Deputado Federal / 22333 - EDNALDO PEREIRA DE SANTANA - PB - Deputado Estadual", "151 - JOSE WILSON SANTIAGO - PB - Senador", "45123 - ANTONIO HERVAZIO BEZERRA CAVALCANTI - PB - Deputado Estadual", "1212 - DAMIÃO FELICIANO DA SILVA - PB -Deputado Federal")

Daniel, isso? do.call(c,strsplit(data,' / ')) 2011/3/31 Daniel Marcelino <dmsilva.br@gmail.com>
Caros, como eu poderia escrever um loop para retirar todos os caracateres que estão antes e depois da "/" na string abaixo e colocando-os em novas variáveis?
Ex.
data <-c("155 - VITAL DO REGO FILHO - PB - Senador", "1111 - - PP - - Deputado Federal / 25888 - ATAIDES MENDES PEDROSA - PB - Deputado Estadual", "1111 - - PP - - Deputado Federal / 22333 - EDNALDO PEREIRA DE SANTANA - PB - Deputado Estadual", "151 - JOSE WILSON SANTIAGO - PB - Senador", "45123 - ANTONIO HERVAZIO BEZERRA CAVALCANTI - PB - Deputado Estadual", "1212 - DAMIÃO FELICIANO DA SILVA - PB -Deputado Federal")
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br

Veja se o código abaixo ajuda: sapply(strsplit(data, "/"), '[[', 1) Abs. Em 31 de março de 2011 20:08, Daniel Marcelino <dmsilva.br@gmail.com>escreveu:
Caros, como eu poderia escrever um loop para retirar todos os caracateres que estão antes e depois da "/" na string abaixo e colocando-os em novas variáveis?
Ex.
data <-c("155 - VITAL DO REGO FILHO - PB - Senador", "1111 - - PP - - Deputado Federal / 25888 - ATAIDES MENDES PEDROSA - PB - Deputado Estadual", "1111 - - PP - - Deputado Federal / 22333 - EDNALDO PEREIRA DE SANTANA - PB - Deputado Estadual", "151 - JOSE WILSON SANTIAGO - PB - Senador", "45123 - ANTONIO HERVAZIO BEZERRA CAVALCANTI - PB - Deputado Estadual", "1212 - DAMIÃO FELICIANO DA SILVA - PB -Deputado Federal")
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
-- Marcos F. Silva http://sites.google.com/site/marcosfs2006

Comparando a proposta do Rodrigo, vi que a minha proposta não retorna o resultado correto, já que pega apenas o primeiro elemento da lista retornada pela função strsplit(). Falha nossa... Abs. Em 31 de março de 2011 20:24, Marcos Silva <marcosfs2006@gmail.com>escreveu:
Veja se o código abaixo ajuda:
sapply(strsplit(data, "/"), '[[', 1)
Abs.
Em 31 de março de 2011 20:08, Daniel Marcelino <dmsilva.br@gmail.com>escreveu:
Caros, como eu poderia escrever um loop para retirar todos os caracateres que estão antes e depois da "/" na string abaixo e colocando-os em novas variáveis?
Ex.
data <-c("155 - VITAL DO REGO FILHO - PB - Senador", "1111 - - PP - - Deputado Federal / 25888 - ATAIDES MENDES PEDROSA - PB - Deputado Estadual", "1111 - - PP - - Deputado Federal / 22333 - EDNALDO PEREIRA DE SANTANA - PB - Deputado Estadual", "151 - JOSE WILSON SANTIAGO - PB - Senador", "45123 - ANTONIO HERVAZIO BEZERRA CAVALCANTI - PB - Deputado Estadual", "1212 - DAMIÃO FELICIANO DA SILVA - PB -Deputado Federal")
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
-- Marcos F. Silva http://sites.google.com/site/marcosfs2006
-- Marcos F. Silva http://sites.google.com/site/marcosfs2006

É, talvez eu tenha me expressado mal. O que eu preciso é de que toda a parte da string antes da barra "/" fique alocada em uma coluna, enquanto tudo o que vier depois da barra "/" ou se não tiver uma barra, seja alocado em outra coluna. Eu fiz isso há muito tempo em SPSS : STRING #n var1 var2 var3 (A200). COMPUTE #n=Beneficiario. VECTOR vBeneficiario=var1 TO var2. LOOP #i = 1 to 2. - COMPUTE #space = INDEX(#n, "/ "). - COMPUTE vBeneficiario(#i) = SUBSTR(#n,1,#space-1). - COMPUTE #n = SUBSTR(#n,#space+1). END LOOP. COMPUTE var3=#n. DO IF var3="". COMPUTE var1=var3. COMPUTE var2="". END IF. EXECUTE. Daniel 2011/3/31 Marcos Silva <marcosfs2006@gmail.com>
Veja se o código abaixo ajuda:
sapply(strsplit(data, "/"), '[[', 1)
Abs.
Em 31 de março de 2011 20:08, Daniel Marcelino <dmsilva.br@gmail.com>escreveu:
Caros, como eu poderia escrever um loop para retirar todos os caracateres que estão antes e depois da "/" na string abaixo e colocando-os em novas variáveis?
Ex.
data <-c("155 - VITAL DO REGO FILHO - PB - Senador", "1111 - - PP - - Deputado Federal / 25888 - ATAIDES MENDES PEDROSA - PB - Deputado Estadual", "1111 - - PP - - Deputado Federal / 22333 - EDNALDO PEREIRA DE SANTANA - PB - Deputado Estadual", "151 - JOSE WILSON SANTIAGO - PB - Senador", "45123 - ANTONIO HERVAZIO BEZERRA CAVALCANTI - PB - Deputado Estadual", "1212 - DAMIÃO FELICIANO DA SILVA - PB -Deputado Federal")
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
-- Marcos F. Silva http://sites.google.com/site/marcosfs2006
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br

se vc garantir a existencia de 1 barra apenas (por linha) do.call(rbind, lapply(strsplit(data, " / "), function(x){if(length(x) == 1){ data.frame(x1=NA, x2=NA, x3=x, stringsAsFactors=FALSE)}else{data.frame(x1=x[1], x2=x[2], x3=NA, stringsAsFactors=FALSE)}})) b 2011/4/1 Daniel Marcelino <dmsilva.br@gmail.com>:
É, talvez eu tenha me expressado mal. O que eu preciso é de que toda a parte da string antes da barra "/" fique alocada em uma coluna, enquanto tudo o que vier depois da barra "/" ou se não tiver uma barra, seja alocado em outra coluna. Eu fiz isso há muito tempo em SPSS : STRING #n var1 var2 var3 (A200). COMPUTE #n=Beneficiario. VECTOR vBeneficiario=var1 TO var2. LOOP #i = 1 to 2. - COMPUTE #space = INDEX(#n, "/ "). - COMPUTE vBeneficiario(#i) = SUBSTR(#n,1,#space-1). - COMPUTE #n = SUBSTR(#n,#space+1). END LOOP. COMPUTE var3=#n. DO IF var3="". COMPUTE var1=var3. COMPUTE var2="". END IF. EXECUTE.
Daniel
2011/3/31 Marcos Silva <marcosfs2006@gmail.com>
Veja se o código abaixo ajuda:
sapply(strsplit(data, "/"), '[[', 1)
Abs.
Em 31 de março de 2011 20:08, Daniel Marcelino <dmsilva.br@gmail.com> escreveu:
Caros, como eu poderia escrever um loop para retirar todos os caracateres que estão antes e depois da "/" na string abaixo e colocando-os em novas variáveis?
Ex. data <-c("155 - VITAL DO REGO FILHO - PB - Senador", "1111 - - PP - - Deputado Federal / 25888 - ATAIDES MENDES PEDROSA - PB - Deputado Estadual", "1111 - - PP - - Deputado Federal / 22333 - EDNALDO PEREIRA DE SANTANA - PB - Deputado Estadual", "151 - JOSE WILSON SANTIAGO - PB - Senador", "45123 - ANTONIO HERVAZIO BEZERRA CAVALCANTI - PB - Deputado Estadual", "1212 - DAMIÃO FELICIANO DA SILVA - PB -Deputado Federal") _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
-- Marcos F. Silva http://sites.google.com/site/marcosfs2006
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br

Tente: read.table(textConnection(data), sep = "/", fill = TRUE, row.names = NULL, header = FALSE) 2011/4/1 Daniel Marcelino <dmsilva.br@gmail.com>:
É, talvez eu tenha me expressado mal. O que eu preciso é de que toda a parte da string antes da barra "/" fique alocada em uma coluna, enquanto tudo o que vier depois da barra "/" ou se não tiver uma barra, seja alocado em outra coluna. Eu fiz isso há muito tempo em SPSS : STRING #n var1 var2 var3 (A200). COMPUTE #n=Beneficiario. VECTOR vBeneficiario=var1 TO var2. LOOP #i = 1 to 2. - COMPUTE #space = INDEX(#n, "/ "). - COMPUTE vBeneficiario(#i) = SUBSTR(#n,1,#space-1). - COMPUTE #n = SUBSTR(#n,#space+1). END LOOP. COMPUTE var3=#n. DO IF var3="". COMPUTE var1=var3. COMPUTE var2="". END IF. EXECUTE.
Daniel
2011/3/31 Marcos Silva <marcosfs2006@gmail.com>
Veja se o código abaixo ajuda:
sapply(strsplit(data, "/"), '[[', 1)
Abs.
Em 31 de março de 2011 20:08, Daniel Marcelino <dmsilva.br@gmail.com> escreveu:
Caros, como eu poderia escrever um loop para retirar todos os caracateres que estão antes e depois da "/" na string abaixo e colocando-os em novas variáveis?
Ex. data <-c("155 - VITAL DO REGO FILHO - PB - Senador", "1111 - - PP - - Deputado Federal / 25888 - ATAIDES MENDES PEDROSA - PB - Deputado Estadual", "1111 - - PP - - Deputado Federal / 22333 - EDNALDO PEREIRA DE SANTANA - PB - Deputado Estadual", "151 - JOSE WILSON SANTIAGO - PB - Senador", "45123 - ANTONIO HERVAZIO BEZERRA CAVALCANTI - PB - Deputado Estadual", "1212 - DAMIÃO FELICIANO DA SILVA - PB -Deputado Federal") _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
-- Marcos F. Silva http://sites.google.com/site/marcosfs2006
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
-- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40" S 49° 16' 22" O

Você tambem pode tentar: scan(textConnection(data), sep = "/", what = '') 2011/3/31 Daniel Marcelino <dmsilva.br@gmail.com>:
Caros, como eu poderia escrever um loop para retirar todos os caracateres que estão antes e depois da "/" na string abaixo e colocando-os em novas variáveis?
Ex. data <-c("155 - VITAL DO REGO FILHO - PB - Senador", "1111 - - PP - - Deputado Federal / 25888 - ATAIDES MENDES PEDROSA - PB - Deputado Estadual", "1111 - - PP - - Deputado Federal / 22333 - EDNALDO PEREIRA DE SANTANA - PB - Deputado Estadual", "151 - JOSE WILSON SANTIAGO - PB - Senador", "45123 - ANTONIO HERVAZIO BEZERRA CAVALCANTI - PB - Deputado Estadual", "1212 - DAMIÃO FELICIANO DA SILVA - PB -Deputado Federal") _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
-- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40" S 49° 16' 22" O
participantes (5)
-
Benilton Carvalho
-
Daniel Marcelino
-
Henrique Dallazuanna
-
Marcos Silva
-
Rodrigo Coster