Caro Jobenil, veja se o código abaixo ajuda alguma coisa.

df1 <- data.frame(concatenado = c("1 _ 307", "22 _ 105", "12 _ 303", "6 _ 201"), var1 = 1:4, var2 = rnorm(4), stringsAsFactors = F)
df2 <- data.frame(concatenar = c("500002_01 _ 307", "5001245_05 _ 303", "500033_22 _ 105",
                       "501256_12 _ 303", "500345_06 _ 201"), var3 = runif(5), var4 = rnorm(5), stringsAsFactors = F)

# Limpar 
df1$concatenado <- gsub("[[:punct:]]| ", "", df1$concatenado)
df2$concatenar <-  gsub("[[:punct:]]| ", "", df2$concatenar)

# Tratar
df2$concatenar <- gsub(".*(\\d{8})$", "\\1", df2$concatenar)
df1$concatenado <- sprintf("%08.0f", as.numeric(df1$concatenado))



Em 26 de junho de 2018 11:36, Jobenil Luiz Magalhães Júnior via R-br <r-br@listas.c3sl.ufpr.br> escreveu:

Boa tarde pessoal,

Estou tentando realizar o merge em dois dataframes, porém as respectivas colunas são ligeiramente diferentes:

df1 <- (concatenado = c("1 _ 307", "22 _ 105", "12 _ 303", "6 _ 201"), var1 = 1:4, var2 = rnorm(4))
df2 <- (concatenar = c("500002_01 _ 307", "5001245_05 _ 303", "500033_22 _ 105",
  "501256_12 _ 303", "500345_06 _ 201", var3 = runif(5), var4 = rnorm(5))

Quero usar os 8 últimos caracteres da variável df2$concatenar e comparar com as da variável df1$concatenado.
Noto que tenho dois problemas: 1) completar com 0 "zeros" à esquerda os valores à esquerda em df1$concatenado, quando forem menores do que 10.
2) Extrair os 8 caracteres à direita da variável df2$concatenar.

Como posso equalizar as duas colunas?
Agradeço desde logo qualquer ajuda que puderem dispensar.
Atenciosamente
Jobenil Júnior
 
 


Mailtrack Remetente notificado por
Mailtrack 26/06/18 11:37:17

_______________________________________________
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