Comparer si deux objets dataframe dans R sont égaux?
Comment puis-je vérifier si deux objets, par exemple dataframes, ont une valeur égale en R?
Par valeur égale, je veux dire la valeur de chaque ligne, de chaque colonne d'un dataframe est égale à la valeur correspondante de ligne et de colonne dans la deuxième dataframe.
3 réponses
ce n'est pas clair ce que signifie tester si deux cadres de données sont "valeur égale" mais pour tester si les valeurs sont les mêmes, voici un exemple de deux cadres de données non identiques avec des valeurs égales:
a <- data.frame(x = 1:10)
b <- data.frame(y = 1:10)
Pour tester si toutes les valeurs sont égales:
all(a == b) # TRUE
Pour tester si les objets sont identiques (ils ne le sont pas, ils ont des noms de colonne):
identical(a,b) # FALSE: class, colnames, rownames must all match.
en outre, identique est encore utile et soutient l'objectif pratique:
identical(a[, "x"], b[, "y"]) # TRUE
nous pouvons utiliser le paquet R compare
pour tester si le nom de l'objet et les valeurs sont les mêmes, en une seule étape.
a <- data.frame(x = 1:10)
b <- data.frame(y = 1:10)
library(compare)
compare(a, b)
#FALSE [TRUE]#objects are not identical (different names), but values are the same.
Dans le cas où nous ne se soucient que de l'égalité de ces valeurs, nous pouvons définir ignoreNames=TRUE
compare(a, b, ignoreNames=T)
#TRUE
# dropped names
le paquet a des fonctions intéressantes supplémentaires telles que compareEqual
et compareIdentical
.