0

Aimeriez-vous pouvoir lire les valeurs de cellules Google Sheets dans R avec le package googlesheets, mais sans appliquer de mise en forme de cellule (par exemple, séparateurs de virgules, pourcentage de conversion, etc.).Lecture des valeurs de cellule sans formatage dans R avec googlesheets

Vous avez essayé gs_read() sans spécifier de plage, qui utilise gs_read_csv(), qui va "demander les données de l'API Sheets via le lien exportcsv". Impossible de trouver un moyen de lui indiquer de fournir une valeur de cellule sous-jacente sans mise en forme appliquée.

De même, essayé gs_read() et en spécifiant une plage, qui utilise gs_read_cellfeed(). Mais ne peut pas trouver un moyen d'indiquer que je veux des valeurs de cellules non formatées.

Remarque: Je ne suis pas après les formules dans les cellules, juste les valeurs sans mise en forme appliquée.

Exemple: (on dirait que je ne suis pas en mesure d'afficher des images d'image) Voici une capture d'écran d'un exemple Google Sheet: https://www.dropbox.com/s/qff05u8nn3do33n/Screenshot%202015-07-26%2008.42.58.png?dl=0 première et troisième colonnes sont numériques sans mise en forme appliquée, 2ème colonne applique une virgule séparateurs pour des milliers, la 4ème colonne applique le formatage en pourcentage.

La lecture de cette feuille avec le code suivant:

library(googlesheets) 
gs <- gs_title("GoogleSheets Test") 
ws <- gs_read(gs, ws = "Sheet1") 

rendements:

> str(ws) 
Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 3 obs. of 4 variables: 
$ Number   : int 123456 123457 123458 
$ Number_wFormat : chr "123,456" "123,457" "123,458" 
$ Percent  : num 0.123 0.234 0.346 
$ Percent_wFormat: chr "12.34%" "23.45%" "34.56%" 

aimerait pouvoir lire une feuille de calcul qui a mise en forme appliquée (ala colonnes 2 et 4), mais lire les valeurs non formatées (ala colonnes 1 et 3).

+0

Les résultats que vous obtenez de gs_read() ... de quelle manière sont-ils affectés par le formatage des cellules? C'est à dire. Qu'en est-il de la valeur de retour est problématique? Pouvez-vous donner un exemple? L'API Sheets ne donne pas accès à la mise en forme des cellules: "La valeur littérale de l'élément de cellule est la valeur calculée de la cellule, sans mise en forme appliquée.Si la cellule contient une formule, la valeur calculée est donnée ici. concept de mise en forme, et ne peut donc pas manipuler le formatage des cellules. " (BTW Je suis l'auteur de googlesheets). – jennybryan

+0

@jennybryan, d'abord MERCI d'avoir écrit le forfait googlesheets - très bien fait. Ensuite, j'ai mis à jour ma question avec un exemple détaillé démontrant le problème. –

Répondre

0

À ce stade, je pense que le mieux est de fixer les données importées comme ceci:

> ws$Number_fixed <- type.convert(gsub(',', '', ws$Number_wFormat)) 
> ws$Percent_fixed <- type.convert(gsub('%', '', ws$Percent_wFormat))/100 
> str(ws) 
Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 3 obs. of 6 variables: 
$ Number   : int 123456 123457 123458 
$ Number_wFormat : chr "123,456" "123,457" "123,458" 
$ Percent  : num 0.123 0.234 0.346 
$ Percent_wFormat: chr "12.34%" "23.45%" "34.56%" 
$ Number_fixed : int 123456 123457 123458 
$ Percent_fixed : num 0.123 0.234 0.346 

J'ai eu un certain espoir que le post-traitement avec des fonctions de readr serait une réponse décente, mais il semble comme percentages et "currency" style numbers sont aussi des problèmes ouverts.

J'ai opened an issue pour résoudre ce mieux dans googlesheets, d'une manière ou d'une autre.

+0

Le numéro non formaté que vous recherchez est présent dans le fichier XML, ce n'est pas la pièce que j'exporte actuellement. C'est donc une autre avenue fructueuse pour l'amélioration des feuilles de route - liée à une demande existante pour [formule de soutien] (https://github.com/jennybc/googlesheets/issues/18). – jennybryan