5

Googleドキュメントでスプレッドシートを公開してからRにインポートできることは承知しています。ただし、Rで読み取りたい関数またはコード(ソース関数など)があるとします。たとえば、Googleドキュメントに保存されているこのすべてのコードをどのように読みますか?

https://docs.google.com/document/edit?id=1f11rcVs9AtVcgOyiP0lV04yq9hshVDIPx93lA0ItFvQ

これは公開されていないと思いますが、例を挙げてください。

基本的に私はしたい:

  1. Rで関数を作成します(比較可能性については、以下の例を参照してください)

  2. それをGoogleDocsにアップロードし、リンクを知っている人と共有して、RやGoogleDocsなどからログインする必要がないようにします...

  3. source()のようなコマンドで好きな場所に読み込んでください

私の興味はデータの読み取りではなく、関数の読み取りにあります。同じコンピューター/サーバーを使用していない場合は、自分の関数をすばやくインポートできます。

何か案は?

どうもありがとう

PSstatsmethods.netの関数の例

mysummary <- function(x,npar=TRUE,print=TRUE) {
  if (!npar) {
    center <- mean(x); spread <- sd(x) 
  } else {
    center <- median(x); spread <- mad(x) 
  }
  if (print & !npar) {
    cat("Mean=", center, "\n", "SD=", spread, "\n")
  } else if (print & npar) {
    cat("Median=", center, "\n", "MAD=", spread, "\n")
  }
  result <- list(center=center,spread=spread)
  return(result)
}
4

4 に答える 4

8

Dropbox で最も簡単に実行できます - ここを参照してくださいhttp://thebiobucket.blogspot.co.at/2012/05/source-r-script-from-dropbox.html

そのようです:

source("http://dl.dropbox.com/s/c18lcwnnrodsevt/test_dropbox_source.R")

ただし、こちらのように Googledocs で行うこともできますhttp://thebiobucket.blogspot.co.at/2011/11/how-to-run-r-scripts-directly-out-of.html#more

library(RCurl)
setwd(tempdir())
destfile = "test_google_docs.txt"
x = getBinaryURL("https://docs.google.com/uc?export=download&id=0B2wAunwURQNsMDViYzllMTMtNjllZS00ZTc4LTgzMzEtNDFjMWQ3MTUzYTRk", followlocation = TRUE, ssl.verifypeer = FALSE)
writeBin(x, destfile, useBytes = TRUE)
source(paste(tempdir(), "/test_google_docs.txt", sep = ""))
于 2012-08-11T12:55:11.060 に答える
8

この種の状況では、Github などをお勧めします。

Github を推奨する理由のほんの一部:

  • バージョン管理
  • コードの強調表示
  • コラボレーション
  • devtools他の人がパッケージを使用して R にインストールできる R パッケージを Github で開発およびホストする機能
  • 関数を簡単にsource()ロードできるシンプルな URL スキーム

関数を Github に投稿したら、次のように簡単にロードできます。

require(RCurl)
baseURL = c("https://raw.github.com/--username--/--repo-name--/master/")
source(textConnection(getURL(paste0(baseURL, "path-to-scripts/script-name.R"))))

もちろん、各 R セッションで入力する代わりに、簡単に関数にラップしたり、devtoolsパッケージ内のオプションのいくつかを試したりすることができます。

これを頻繁に行う場合は、R パッケージを作成して Github でホストする方法を学びたいと思うかもしれません。たまにしかこれを行う必要がない場合は、代わりに「github:gist」の使用を検討してください。各「要点」には、次のようにパッケージsource_gist()から簡単に取得できる数値 ID が割り当てられます。devtools

source_gist("gist-id-number")

それを打ち負かすのはかなり難しいですが、関数の ID 番号を書き留めるか、すべての関数を 1 つのファイルに入れて 1 つの ID 番号を記憶する必要があります...


コードを書くのに Google Docs のようなものをお勧めしない理由は、ファイルのソースを困難にする隠し文字を導入する可能性があるような目的で「ワード プロセッサ」タイプのソフトウェアを使用するのは、一般的にひどい考えだからです。さらに、プレーンテキスト版の URL は非常にわかりにくく、覚えられないでしょう....

ちなみに、投稿でリンクしたファイルの「txt」バージョンを取得することは可能ですが、私にはできませんsource()。テキスト エディターで開いて、コピーして R に貼り付ける必要があります。 . これは、ファイルのエンコーディングが「UTF-8 (BOM あり)」のように見えるためです。そこに対処する方法についてのヒントを持っている人はいますか?

于 2012-08-11T09:46:36.837 に答える
4

また、githubまたはdropboxを使用するのが最善の方法だと思います。しかし、RGoogleDocsandXMLパッケージを使用すると、XML解析でコードを解析できます(私はあまり経験がありません)。誰かがより良いコードを持っている可能性があります。

### require(devtools);dev_mode(TRUE, .libPaths()[1]);install_github("RGoogleDocs", "duncantl")
require(RGoogleDocs) 
require(XML)

auth <- getGoogleAuth("dicko.ahmadou@gmail.com", "*********")

con <- getGoogleDocsConnection(auth)

mydoc <- getDocs(con)

## I put star for confidentiality
## Your doc is in 10th position
names(mydoc)

##  [1] "*********"                                 
##  [2] "*********"                             
##  [3] "panel_tp_transferts"                                      
##  [4] "txint"                                                    
##  [5] "avortementsuivisen"                                       
##  [6] "Untitled Document"                                        
##  [7] "copie de villages_emprise10km"
##  [8] "AéroportBlaiseDiagne_AFDB.pdf"                            
##  [9] "strassen_eng.pdf"                                         
## [10] "R_script_CO2_emissions_airborne"  


rcode <- mydoc[[10]]
rcode <- getDocContent(rcode, con)
## remove Non break space in the document (there are plenty of them...)
rcode <- gsub("&nbsp;", " ", rcode)
rcode <- htmlParse(rcode, asText = TRUE)
rcodecontent <- xpathApply(rcode, "/html//body//p//span")
rcodecontent <- sapply(rcodecontent, function(x) unname(xmlSApply(x, xmlValue))

これで、コードをファイルに保存できます

### save the script in my dropbox folder (dropbox is very easy to use...)
cat(sapply(rcodecontent, function(x) paste(x, "\n")), 
       file = "/home/ahmadou/Dropbox/Public/code.R")

### retrieve the public link
oldwd <- getwd()
setwd("/home/ahmadou/Dropbox/Public")
system('dropbox puburl code.R', intern = TRUE)
[1] "https://dl.dropbox.com/u/8750577/code.R"

setwd(oldw)

これがコードのリンクです

于 2012-08-11T10:56:14.300 に答える
1

ファイルのアップロードとダウンロードをサポートするパッケージRGoogleDocsがあります。ファイルがダウンロードされると、それを使用sourceして読み取ることができます。

于 2012-08-11T09:56:00.107 に答える