Comparando dos dataframes usando all.equal
Tengo dos dataframes que contienen las mismas columnas. Sin embargo, debido a problemas de importación de datos/diferencias en las fuentes de datos, las clases de las mismas columnas en ambos dataframes pueden no ser las mismas. Quiero usar all.equal
para verificar solo si los valores en ambos dataframes son iguales. Si no son iguales, quiero saber el número de fila y columna donde se encuentra la diferencia. No quiero saber si las clases son diferentes. ¿Cómo puedo hacerlo usando all.equal
?
Aquí está mi salida hasta ahora y no puedo entender mucho de ella:
[1] "Componente “ins_name”: 32 diferencias de cadenas"
[2] "Componente “reg_no”: Diferencia relativa media: 0.02519084"
[3] "Componente “company_id”: 11 diferencias de cadenas"
[4] "Componente “company_name”: 14 diferencias de cadenas"
[5] "Componente “rep_date”: Atributos: < Longitud no coincide: comparación en los primeros 1 componentes >"
[6] "Componente “rep_date”: Atributos: < Componente “class”: Las longitudes (1, 2) difieren (comparación de cadenas en el primer 1) >"
[7] "Componente “rep_date”: Atributos: < Componente “class”: 1 diferencia de cadenas >"
[8] "Componente “rep_date”: el objetivo es Date, el actual es POSIXct"
[9] "Componente “au_date”: Atributos: < Longitud no coincide: comparación en los primeros 1 componentes >"
[10] "Componente “au_date”: Atributos: < Componente “class”: Las longitudes (1, 2) difieren (comparación de cadenas en el primer 1) >"
[11] "Componente “au_date”: Atributos: < Componente “class”: 1 diferencia de cadenas >"
[12] "Componente “au_date”: el objetivo es Date, el actual es POSIXct"
[13] "Componente “industry”: 9 diferencias de cadenas"
[14] "Componente “totalhours”: Diferencia relativa media: 0.1774153"
¡Gracias de antemano!
davy.ai
Puedes usar la función
all.equal
con el argumentocheck.attributes = FALSE
para comparar solo los valores y no las clases o atributos.Para obtener los números de fila y columna donde se encuentran las diferencias, puedes usar la función
which
en la salida deall.equal
para obtener los índices donde aparecen las cadenas “Component” y “mismatch”.Aquí tienes un código de ejemplo:
Salida:
En este ejemplo, la salida indica que los valores en la fila 3 columna “b” y en la fila 2 columna “b” son diferentes, al igual que el valor en la fila 3 columna “a”. La salida no indica ninguna información sobre diferencias en clases o atributos.