2009-09-08 7 views
4

Existe-t-il un moyen facile de lire la valeur des cellules plutôt que la formule? En passant, je ne reçois ce problème que dans une feuille de calcul que j'ai publiée mais pas dans des feuilles de calcul qui sont privées. Ainsi, par exemple dans une cellule dont la valeur a été créée en utilisant simplement la valeur de la cellule immédiatement à gauche dans la feuille de calcul Google Je préférerais obtenir la valeur plutôt que =RC[-1]Obtenir la valeur plutôt que la formule dans RGoogleDocs

Quand on exporte avec Google Spreadsheets comme csv alors ça n'arrive pas.

J'utilise la ligne de code suivante dans R

y2009<-sheetAsMatrix(ts2$y2009,header=TRUE, as.data.frame=TRUE, trim=TRUE) 
+0

La plupart des feuilles de calcul avec lesquelles je travaille sont privées et quelques-unes sont publiques. Parce que je suis dans cet environnement mixte, je préfère tout faire dans RGooglDocs. – Farrel

+0

Impossible de reproduire, désolé. Avez-vous tout mis à jour vers les dernières versions? –

+0

@Joris Meys: malheureusement la reproduction n'est pas un problème ici :) Si vous faites une feuille privée avec des cellules liées (égales) à d'autres, vous obtiendrez des chaînes '= RC [-x]' au lieu des vraies valeurs. – daroczig

Répondre

1

La question originale a été écrite 2009-09. À l'époque, j'utilisais RGoogleDocs pour lire des feuilles de calcul Google. Au cours des derniers mois, j'ai découvert un paquet créé et maintenu activement appelé "googlesheets: Manage Google Spreadsheets from R" par Jennifer Bryan et Joanna Zhao en Colombie-Britannique, Canada. Au début, c'était seulement sur GitHub et maintenant c'est dans le dépôt Cran. Ça marche bien. C'est bon pour lire et écrire. Il n'expose pas son mot de passe google. Tous les problèmes que j'avais précédemment dans RGoogleDocs ont été rendus non pertinents par googlesheets.

1

Si vous n'êtes pas trébuché sur cette page Web, il semble utile (je ne l'ai pas essayé moi-même ...)

http://blog.revolutionanalytics.com/2009/09/how-to-use-a-google-spreadsheet-as-data-in-r.html

Il semble que le package qui était utilisé (RGoogleData) soit en cours de maintenance.

Bonne chance!

+1

En fait, la solution sur cette page ne dépend d'aucun paquet R. Cela fonctionne bien, tant que vous n'aurez aucun problème à rendre votre feuille de calcul Google publiquement accessible. –

+0

Oui, j'aurais dû séparer mes idées là-bas. Je disais simplement que si l'information sur cette page ne fonctionnait pas, il y a aussi le paquet RGoogleData qui est actuellement hors service. – Rguy

+0

peut-être que vous voulez vérifier cela aussi: http://thebiobucket.blogspot.com/2012/03/r-function-to-read-data-from-google.html#more – Kay

1

Pas une solution intelligente, mais l'évaluation de la formule fonctionne. Par exemple, avec la fonction suivante:

getValues <- function(x) { 
    m <- apply(x, 2, function(x) as.character(x)) 
    for (i in 1:nrow(m)) { 
     formulas <- which(substr(m[i,], 1, 4) == "=RC[") 
     t <- sub('=RC[', '', m[i, formulas], fixed=TRUE) 
     t <- sub(']', '', t, fixed=TRUE) 
     t <- as.numeric(t) 
     m[i, formulas] <- m[i, (formulas + t)] 
    } 
    return(m) 
} 

getValues(y2009) doit renvoyer une trame de données avec toutes les valeurs requises. Je sais que c'est une "solution" assez bête avec beaucoup de compromis mais j'espère que vous pourriez coder une fonction beaucoup plus propre pour la tâche! :)

+0

Et bien sûr un 'regexpr intelligent 'simplifierait la fonction, mais malheureusement, je n'ai aucune expérience profonde avec les expressions régulières :( – daroczig

+1

Merci d'avoir essayé, mais cela ne fonctionne pas.Dans ma dernière itération du problème, la formule dans la colonne est = RC [-2] & "_" & RC [-1]. C'est très simple. Il prend le contenu de la cellule deux à gauche et le colle au contenu d'un à gauche et met un trait de soulignement entre les deux valeurs de caractères. J'ai été capable de facilement le répliquer dans R mais cela ne résout toujours pas mon problème de base de RGoogleDocs: l'importation de la formule plutôt que la valeur de la formule. La feuille de calcul que j'ai essayée aujourd'hui est publiée afin que n'importe qui avec le lien puisse l'afficher mais je me connectais toujours à travers le getGoogleAuth – Farrel

+0

@Farrel: Je vois. Je pensais que vous avez toutes ces "fonctions" simples. Un niveau de codage un peu plus profond pourrait "résoudre" votre problème, bien que je n'aie aucune idée de ce qui pourrait être la cause de cet événement étrange. Je reviendrai plus tard pour voir si vous pourriez résoudre la question! – daroczig

Questions connexes