2017-04-25 2 views
0

Je viens de tenter de lire dans R une image Pandas stockée sur disque avec Feather. Après avoir lu le dataframe, j'ai vérifié le type de l'objet et au lieu de voir 'data.frame' comme résultat, je vois 'tbl_df' 'tbl' 'data.frame'. Une idée de ce qui se passe ici?Lecture d'une trame de données Pandas stockée avec Feather dans R

Code pertinent est tout simplement: contact_records_df <- read_feather('contact_records.feather') class(contact_records_df)

+0

Envelopper l'appel '' read_feather' avec data.frame (.) 'Semblait résoudre le problème, mais on ne sait pas pour moi, pourquoi cela serait même nécessaire. – Chris

Répondre

1

Il est juste apportèrent en tant Tibble, qui est plus ou moins une dataframe « améliorée » du monde tidyverse. Vous pouvez voir les documents here

Vous pouvez les utiliser de manière interchangeable avec des données. J'ai remarqué de temps en temps, surtout avec les fonctions spatiales, que les grignotements causent la mort de quelque chose et que vous devez parfois les convertir en données.

library(tibble) 

x1 <- c(1, 2, 3, 4) 
x2 <- c("one", "two", "three", "four") 

example_df <- data.frame(x1,x2) 
example_tibble <- tibble(x1,x2) 

Si vous consultez les deux d'entre eux en utilisant str, vous verrez qu'ils sont fondamentalement les mêmes, sauf tibbles sera pas automatiquement convertir des chaînes à des facteurs (entre autres).

> str(example_df) 
'data.frame': 4 obs. of 2 variables: 
$ x1: num 1 2 3 4 
$ x2: Factor w/ 4 levels "four","one","three",..: 2 4 3 1 
> str(example_tibble) 
Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 4 obs. of 2 variables: 
$ x1: num 1 2 3 4 
$ x2: chr "one" "two" "three" "four" 

En outre, il est encore un dataframe mais il a certaines classes plus spécifiques

> is.data.frame(example_tibble) 
[1] TRUE