CRAN Task View: Web Technologies and Servicesについて、機械翻訳を交えて日本語化し掲載しております。

概要

Maintainer: Mauricio Vargas Sepulveda, Will Beasley
Contact: m.sepulveda at mail.utoronto.ca
Version: 2024-10-27
URL: https://CRAN.R-project.org/view=WebTechnologies
Source: https://github.com/cran-task-views/WebTechnologies/
Contributions: このタスクビューに対する提案や改良は、GitHubのissueやpull request、またはメンテナのアドレスに電子メールで送ってください。詳しくはContributing guideをご覧ください。
Installation: このタスクビューのパッケージは、ctvパッケージを使用して自動的にインストールすることができます。例えばctv::install.views(“WebTechnologies”, coreOnly = TRUE) は全てのコアパッケージをインストールし、ctv::update.view(“WebTechnologies”)はまだインストールされていない最新のパッケージを全てインストールすることが可能です。詳しくはCRAN Task View Initiativeを参照してください。

0.はじめに

ウェブで仕事をするためのツール

このタスクビューでは、Rでインターネット上のリソースと効率的にやり取りするためのパッケージやストラテジーを推奨しています。

このタスクビューの改善や、成長させるための提案がある場合は、上記のリンク先のGitHubリポジトリにイシューまたはプルリクエストを提出してください。GitHub で貢献できない場合は、タスクビューのメンテナにメールを送ってください。以下に説明するパッケージについて問題がある場合は、そのパッケージのメンテナに連絡してください。

このタスクビューのすべての貢献者、特に2021年までこのタスクビューを維持したScott Chamberlain, Thomas Leeper, Patrick Mair, Karthik Ram, Christopher Gandrudに感謝します。

HTTPリクエストのためのコアツール

Rの機能の大部分は、libcurlの上に重ねられたCRANパッケージによって提供されています。4つのパッケージは、ほとんどの現代的なアプローチの基礎を提供します。

  • httrは、HTTPリクエストのためのユーザ向けクライアントです。ほとんどの操作にcurlパッケージを利用します。追加のオプションはhttrのconfigパラメータでcurlに渡すことができます。もし、ウェブサービスを呼び出すパッケージを開発しているのであれば、httrのビネットを読むことをお勧めします。
    • httrのチームはその後継となるhttr2を開発しています。もしあなたが安定した基盤を必要とするパッケージを作成しているなら、今はhttrを使い、httr2 v1.0のリリースを待つかもしれません。しかし、もしあなたがhttr2の成熟に伴う変更に対応できるのであれば、今httr2のアプローチに投資することは有益かもしれません。
  • crulは、R6ベースのHTTPクライアントで、非同期HTTPリクエスト、ページネーションヘルパー、webmockrによるHTTPモッキング、vcrによるユニットテスト用のリクエストキャッシュを提供します。
    • crulはRユーザではなく、他のパッケージから呼び出されることを想定しています。httrとは異なり、crulのcurrent versionはOAuthをサポートしていません。crulのR6クラスをインスタンス化する際に、追加のオプションをcurlに渡すことができます。
  • curlは、Rとlibcurl C libraryとの間の緊密なインターフェースを提供する低レベルパッケー ジです。curlはWebベースのXMLやFTPの操作に便利です(crulとhttrは主にHTTPに焦点を当てています)。
  • utilsbaseは、download.file()、url()、および関連する関数を提供する基本的なRパッケージです。これらの関数はlibcurlも使用しています。

Webスクレイピングツールの使用を開始する前に

Webスクレイピングを実行するためのコードがある場合があり、時間メトリックやリソースの使用によって非常に効率的ですが、最初に、そうすることが合法で倫理的であるかどうかについて話す必要があります。

‘polite’パッケージを使用すると、許可を求めるという原則を構築し、ゆっくりと取り、二度と求めないことができます。このパッケージは、http セッション(‘httr’‘rvest’)、ユーザーエージェント文字列の宣言とサイトポリシーの調査(’robots.txt’)、レート制限と応答キャッシング(‘ratelimitr’‘memoise’)を定義および管理するための素晴らしいツールキットに基づいて構築されています。

問題は技術的な問題ではなく、倫理的であり、また合法的な問題です。技術的にはアートオークションサイトにログインして、すべての絵画の価格をスクレイピングすることができますが、アカウントが必要で、「rSelenium」を使用してブラウザでのクリックを自動化して情報を抽出する場合は、利用規約(ToS)の対象となります。

別の問題は、一部のWebサイトが特定の接続を必要とすることです。大学や政府の建物からサイトに接続してコンテンツに無料でアクセスできますが、自宅から接続する場合、同じコンテンツにアクセスするには有料のサブスクリプションが必要になる場合があります。大学からサイトをスクレイピングする場合、スクレイピングの目標と範囲に注意を払わないと、いくつかの法律に違反している可能性があります。

1.データの直接ダウンロードとインジェスト

近年、TLS/SSLで保護されたWebページに対応するため、多くの機能が更新されています。その結果、ファイルのURLの先頭が「http」または「https」であれば、通常ダウンロードすることができます。

データファイルが単純なURLでアクセスできない場合は、Online servicesのセクションに進んでください。AWS、Googleドキュメント、Twitter、REDCap、PubMed、Wikipediaといった特定のウェブサービスとの連携について説明されています。

データベースエンジンで情報を提供する場合は、以下のOnline servicesのセクションにあるクラウドサービスや、Databases with R CRAN Task Viewをご確認ください。

リモートファイルを直接取り込む

多くのベースとCRANパッケージは、urlを受け取ってdata.frameやリストを返す関数を提供しています。

  • 表形式/長方形のプレーンテキスト構造用:
    • utilsのread.csv()やread.table()などは、base::data.frameを返します。
    • readrのread_csv()やread_delim()などは、base::data.frameから派生したtibble::tibbleを返します。
    • data.tableのfread()は、base::data.frameから派生したdata.table::data.tableを返します。
    • arrowのread_csv_arrow()は、tibble::tibble()や他のArrow構造体を返します。
  • 階層化/ネスト化されたプレーンテキスト構造の場合:
    • jsonliteのfromJSON()は、JSONをリストに変換します。
    • yamlのyaml.load_file()は、YAMLをリストに変換します。
    • XMLのparseXML()は、XMLをリストに変換します。
    • HTMLについては、後述の「構造化されたウェブデータの解析」の項を参照してください。
  • Sparkエコシステム内の構造物について:
    • arrow:parquet、feather、arrow IPCストリームなど、ビッグデータで使用される様々なファイル形式を扱うことができます。
  • その他のファイル構造について:
    • riorepmis:多くのプレーンテキストと独自のフォーマットに対応します。

リモートファイルをダウンロードし、インジェストする

異なるタイプのファイルを処理する必要がある場合、2つのステップでこれを達成することができます。まず、サーバからローカルコンピューターにファイルをダウンロードします。次に、新しいローカルファイルのパスをhavenforeignのようなパッケージの関数に渡します。

多くの基本パッケージやCRANパッケージは、ファイルをダウンロードする機能を提供しています。

  • utilsのdownload.file()です。
  • curlのcurl_download()、curl_fetch_multi()とその仲間たちです。
  • 代替案としては、httr::GET() (または RCurl::getURL())を使って、まずファイルを文字ベクトルとしてRに読み込んでからutils::read.table(text = …)といった関数でパージングを行う方法があります。

構造化されたウェブデータのパース

ウェブベースのデータの大部分は、プレーンテキストまたはHTML、XML、JSONとして構造化されています。WebサービスのAPIはますますJSONに依存していますが、XMLは多くのアプリケーションでまだ普及しています。これらの形式を扱うためのパッケージがいくつかあります。これらの関数は、安全でないWebページと直接やり取りするために使用したり、ローカルに保存されたWebファイルやメモリ内のWebファイルを解析するために使用したりすることができます。口語的には、これらの活動はweb scrapingと呼ばれています。

  • XML:
    • XMLを扱うための基礎となるパッケージが2つあります。
      • XMLxml2です。xml2は完全な機能を備えていませんが,メモリ管理,クラス(例:XMLノード,ノードセット,ドキュメント),名前空間に関して,より使いやすいものとなっています.この2つのうち、XMLノードとドキュメントの新規作成が可能なのはXMLのみです。
    • その他、XMLツールは以下の通りです。
      • XML2Rは、XMLをデータフレームに変換するための便利な関数群です。XMLに代わるものとして、CSS3セレクタを解析し、XPath1.0式に変換するselectrがあります。XMLはxmlやhtmlの解析によく使われますが、selectrはCSSのセレクタをXPathに変換するので、XPathの代わりにCSSのセレクタを使うことができるのです。
      • XMLSchemaは、RでXMLスキーマドキュメントを読み込み、Rのクラスの定義とXMLノードをこれらのクラスのインスタンスに変換する関数を作成するための機能を提供します。これはRでXMLスキーマを使用したメタ計算を行うためのフレームワークを提供します。
      • xsltは、xml2の拡張機能で、xsltスタイルシートを適用してXMLドキュメントを変換する。これは、Webスクレイピングや、XMLマークアップを人間や機械が読める別の形式(HTML、JSON、プレーンテキストなど)に変換する際に有用であろう。
  • HTML:
    • XMLで動作するツールはすべてHTMLでも動作しますが、HTMLはより不正確になりやすい傾向があります。ですから、xml2::read_html()はHTMLを読み込むために最初に使う関数としてはよいものです。他のツールは、HTMLを扱うために特別に設計されています。
    • ウェブページの静的コンテンツをキャプチャするためのpostlightmercuryは、ウェブページを構造化されたきれいなテキストに変換するウェブサービス「Mercury」用のクライアントです。
    • rvestは、パイプ(Base Rの |> やmagrittrの %>% のようなもの)を使用して一般的なWebスクレイピングタスクを表現する別の高レベルの代替手段です。
    • boilerpipeRは、HTMLファイルから本文を抽出し、広告、サイドバー、ヘッダを除去する汎用的な機能を提供します(boilerpipe Javaライブラリ使用)。
    • PhantomJS(2018年にアーカイブされましたarchived in 2018):
      • webshotは、PhantomJSを使用して、ブラウザなしでウェブページのスクリーンショットを提供します。Webサイト(Shinyアプリケーションなど)のテストに便利です。r github(“cpsievert/rdom”)はPhantomJSを使ってWebページのDOM(Document Object Model)にアクセスするものです。
    • htmltoolsは、HTMLの要素を作成するための関数を提供します。
    • RHTMLFormsは、HTMLドキュメントを読み込み、その中に含まれる各フォームの説明を、異なる要素や隠しフィールドとともに取得します。
      • htm2txtは、正規表現を使用して、すべてのhtmlタグを削除することにより、htmlドキュメントをプレーンテキストに変換します。
      • Rcrawlerは、ウェブページのクロールとスクレイピングを行います。
    • HTMLユーティリティ:これらのツールはコンテンツを抽出するものではありませんが、開発やデバッグを助けることができます。
  • JSON:
    • JSONを読み書きするためのパッケージは、rjsonRJSONIOjsonliteがあります。
      • jsonliteを使うことをお勧めします。jsonliteについては、Jeroen Ooms氏による論文(https://arxiv.org/abs/1403.2805)をご覧ください。
      • jqrは、高速なJSONライブラリ「jq」のバインディングを提供します。
      • jsonvalidateは、「is-my-json-valid」JavaScriptライブラリを使ってJSONとスキーマを検証し、ajvも「ajv」JavaScriptライブラリを使って同じことを実行します。
      • ndjsonは、「ndjson」形式をサポートしています。
  • RSS/Atom:
    • feedeRは、RSSやAtomフィードのパースに使用できます。
    • tidyRSSは、RSS、Atom XML/JSON、geoRSSをtidy data.frameにパースします。
  • swaggerは、Swagger.io形式のドキュメントを提供するWebサービスAPIを操作するための関数を自動的に生成するために使用することができます。

2.オンラインサービス

クラウドコンピューティングとストレージ

  • Amazon Web Services (AWS):
    • pawsは、コンピュート、ストレージ、データベース、機械学習など、ほぼすべてのAWS APIへのインターフェースです。また、外部システムの依存関係も必要ありません。
    • aws.signatureは、AWS API のリクエスト署名を生成するための機能を提供します。
    • Elastic Cloud Compute (EC2) はクラウドコンピューティングサービスです。segue(CRANではない) はEC2インスタンスとS3ストレージを管理し、emrlapply() というElastic Map Reduce (EMR)エンジンのためのlapply ()の並列バージョンを含んでいます。単純な並列計算を得るために、AmazonのEMRでHadoop Streamingを使用しています。
  • Microsoft Azure:AzureとMicrosoft 365は、マイクロソフトのクラウドコンピューティングサービスです。
    • Azureプラットフォームは、Paas、SaaS、IaaSを提供し、Microsoft固有のシステムやサードパーティのシステムを含む多くの異なるツールやフレームワークをサポートしています。また、Microsoft 365は、MicrosoftのOfficeサービス、Windows、Dynamicsのクラウドデータにアクセスするための統一フレームワークとなっています。
      • AzureR package familyは、RでAzureを扱うための軽量で強力なツール群を提供することを目的としています。以下のパッケージはファミリーの一部であり、cloudyrプロジェクトでもミラーリングされています。
    • Azure Active Directory(AAD)は、一元化されたディレクトリとアイデンティティサービスです。
      • AADのRクライアントであるAzureAuthは、Resource Managerやストレージなど、他のAzureサービスと認証するためのOAuthトークンを取得するために使用します(次参照)。
    • Microsoft Graphは、Azure Active DirectoryやOfficeを含むMicrosoft 365プラットフォーム用のAPIフレームワークです。
      • AzureGraphは、Graphへの低レベルの拡張可能なR6ベースのインターフェースです。
      • Microsoft365Rは、OneDrive や SharePoint Online を含む Microsoft 365 の Office 部分へのインターフェースです。
    • Azure Resource Manager(ARM)は、他のAzureサービスをデプロイするためのサービスです。
      • AzureRMRは、ARMのRインターフェースであり、サブスクリプション、リソースグループ、リソース、テンプレートを管理することができます。一般的なR6クラスフレームワークを公開しており、特定のサービスに対して追加機能を提供するために拡張することができます(次を参照)。
    • Azure Storage Accountsは、汎用的なデータストレージ機能です。ファイル、ブロブ、テーブル、データレイクなど、さまざまなタイプのストレージが利用可能です。
      • AzureStorは、ストレージへのRインターフェースを提供します。ファイル、ブロブ、Data Lake Gen2ストレージのクライアント、並列化されたファイル転送、MicrosoftのクロスプラットフォームAzCopyコマンドラインユーティリティへのインターフェースなどの機能があります。また、ストレージアカウントの作成と管理を可能にするARMインターフェースも提供されています。
      • AzureTableStorAzureQstorは、AzureStorを拡張して、それぞれテーブルストレージとキューストレージへのインターフェースを提供します。
    • AzureVMは、Azureの仮想マシンを作成・管理します。Windows、Ubuntu、Debian、RHELなど、一般的なVMの仕様やOSに対応したテンプレートが豊富に用意されています。
    • AzureContainersは、Azureでコンテナを扱うための統一されたファシリティを提供します。具体的には、Azure Container Instances(ACI)、Azure Docker Registry(ACR)、Azure Kubernetes Service(AKS)に対するRインターフェースが含まれています。Dockerイメージを作成してACRリポジトリにプッシュし、ACIコンテナをスピンアップし、AKSでKubernetesサービスをデプロイします。
    • Azure Data Explorerは、Kustoとしても知られており、高速でスケーラブルなデータ探索および分析サービスです。
      • AzureKustoは、ADE/KustoへのRインターフェースです。SQLデータベース用のdbplyrが提供するものと同様のdplyrクライアントインターフェース、DBIクライアントインターフェース、Kustoクラスタとデータベースをデプロイおよび管理するためのARMインターフェースが含まれています。
    • Azure Cosmos DBは、マルチモデルのNoSQLデータベースサービスで、以前はDocument DBとして知られていました。
      • AzureCosmosRは、Cosmos DBのコア/SQL APIへのインターフェースです。また、テーブルストレージとMongoDBのAPIへの簡単なブリッジも含まれています。
    • Azure Computer VisionとAzure Custom Visionは、画像認識と解析のためのAIサービスです。Computer Visionは、一般的に遭遇するタスクを処理するための事前訓練されたサービスであり、Custom Visionは、カスタムデータセットで独自の画像認識モデルを訓練することができます。
      • AzureVisionは、これら両サービスへのインターフェースを提供します。
    • Application Insightsは、ライブWebアプリケーションのアプリケーションパフォーマンスの監視と使用状況の追跡を提供します。AzureAppInsightsを使用すると、Shinyアプリの開発者は、パフォーマンスを追跡するためにアプリにApplication Insights JS SDKを含めることができます。cloudyrプロジェクトやAzureRパッケージファミリの一部ではありません。
  • Google Cloud:
    • googledriveは、Googleドライブと連動します。
    • googleComputeEngineRは、Google Compute Engine APIと連携し、Google Cloudでインスタンスの作成、起動、停止を行うことができます。
    • googleCloudStorageRは、Google Cloud Storageとのインターフェースです。
    • bigrquery:GoogleのBigQueryへのインターフェースです。
    • rrefine:’Open Refine’ (旧 ‘Google Refine’) データクリーニングサービス用のクライアントを提供します。
    • gargleGoogle APIsへのインターフェースです。
    • ウェブテクノロジータスクビューの他のセクションで、他のGoogle製品とのインターフェースを提供するパッケージを探してみてください。
  • Dropbox:
    • repmisのsource_Dropbox()関数は、非公開フォルダからプレーンテキストのデータをダウンロード/キャッシュします。
  • 他のクラウドストレージ:
    • boxrは、box.com APIのための軽量で高レベルなインターフェースです。
  • Docker:
    • analogseaは、Digital Ocean v2 API用の汎用クライアントです。また、base RやRStudioサーバなど、様々なRツールをインストールするための機能が含まれています。このパッケージを経由して、リモートドロップレットのdockerと対話するためのインターフェースが改良されています。
  • crunchは、crunch.ioのストレージとアナリティクスプラットフォームへのインターフェースを提供します。
    • crunchyは、Crunch上でShinyアプリを作ることを容易にします。
  • The cloudyr projectは、一般的なAmazon、Azure、Googleのクラウドサービスへのインターフェースを、外部のシステムに依存することなく提供することを目的としています。Amazon Web Servicesは、コンピューティング、ストレージ、インフラストラクチャツールのスイートを提供する、人気のある独自のクラウドサービスです。
  • pinsは、AWS、Azure、Google Cloud Storage、Posit Connectなど、さまざまなバックエンドでデータ、モデル、その他のRオブジェクトを公開するために使用することができます。

ソフトウェア開発

  • R-hubは、あらゆるアーキテクチャのRパッケージ開発を支援するための無料サービスの集合体です。
    • rhubは、R-Hubとのインターフェースで、プラットフォーム上でパッケージをチェックすることができます。
  • GitHub
    • gistrは、GitHubのgist(gist.github.com)をRから操作し、新しいgistの作成、新しいファイルによるgistの更新、ファイル名の変更、ファイルの削除、gistの取得と削除、gistのスターとアンスター、gistのフォーク、gistをデフォルトのブラウザで開く、gistに対する埋め込みコードの取得、gistのコミット一覧、認証時のレート制限情報の取得ができます。
    • git2rは、gitバージョン管理システムへのバインドが使用できます。
    • ghは、GitHub APIへのクライアントが使用できます。
  • GitLabgitlabrは、GitLab専用のクライアントです。

ドキュメントと画像

  • データアーカイブ:
    • dataverseは、オープンソースの研究データリポジトリソフトウェアであるDataverseへのアクセスを提供します。
    • rfigshareは、Figshare.comと接続します。
    • dataoneは、「DataONE」リポジトリのクライアントを提供します。
  • Google Sheets:
    • googlesheets4(googlesheetsを置き換える)は、タイトル、キー、URLでプライベートまたはパブリックな「Google Sheets」にアクセスできます。データを抽出したり、データを編集したりすることができます。スプレッドシートやワークシートの作成、削除、名前の変更、コピー、アップロード、ダウンロード。
    • gsheetは、共有リンクだけを使用してGoogleシートをダウンロードすることができます。スプレッドシートは、データフレームとして、または手動で解析するためのプレーンテキストとしてダウンロードすることができます。
  • imguRは、画像ホスティングサービスImgur.comを使ってプロットを共有します。
    • knitrは、リテラルなプログラミング文書から画像を読み込むための関数imgur_upload()も持っています。
  • Teams、SharePoint、OneDrive:
    • Microsoft365Rは、Microsoft 365(旧Office 365)スイートの一部を構成するこれらのサービスへのインターフェースを提供します。

データ処理と可視化

  • 文書処理:
  • ビジュアライゼーション:
    • Plot.lyは、R(とPython)を使ってWeb上でビジュアライゼーションを作成できる会社で、plotlyからアクセスできます。
    • googleVisは、RとGoogleチャートツールの間のインターフェースを提供します。
  • その他:
    • rrefineは、データクリーニングサービス「OpenRefine」との間でインポート、エクスポートが可能です。

機械学習と翻訳

このリストは、オンラインサービスについて説明しています。このトピックのより完全な扱いについては、MachineLearning CRAN Task Viewをご覧ください。

  • サービスとしての機械学習:
    • クラウドベースの機械学習サービスへのアクセスを提供するパッケージがいくつかあります。
    • OpenMLは、the OpenML APIの公式クライアントです。
    • clarifaiは、Clarifai.comのクライアントで、自動画像記述を可能にします。
    • rLTPは、ltp-cloud serviceにアクセスします。
    • languagelayeRは、言語検出APIのLanguagelayerのクライアントです。
    • yhatrによりYhat REST APIを介してモデルの展開、保守、起動を行います。
    • datarobotは、Data Robotの予測モデリングプラットフォームと連携しています。
    • mscsweblm4rは、Microsoft Cognitive Services Web Language Model APIを使用します。
    • mscstexta4rは、Microsoft Cognitive Services Text Analytics REST APIを使用します。
    • rosetteApiは、テキスト解析API「Rosette」にリンクします。
    • googleLanguageRは、GoogleのCloud Translation API、Natural Language API、Cloud Speech API、Cloud Text-to-Speech APIへのインターフェースを提供します。
    • AzureVisionは、Azure Computer VisionおよびCustom Vision画像認識サービスへのインターフェースを提供します。
  • 機械翻訳:

空間解析

このリストでは、オンラインサービスについて説明しています。このトピックのより完全な扱いについては、Analysis Spatial Data CRAN Task Viewを参照してください。

  • ジオロケーション/ジオコーディング:
    • rgeolocate (archived)は、オンラインとオフラインでいくつかのツールを提供しています。
    • rydnは、Yahoo Developers network geolocation APIへのインターフェースで、IPv4/6 アドレスやドメイン名をhttp://ip-api.com/を使ってジオロケーションするために ipapiが使えます。
    • opencageは、「OpenCage」geocoding サービスへのアクセスを提供しています。
    • nominatimlitenominatimは、リバースジオコーディングのためにOpenStreetMap Nominatim APIに接続します。
    • PostcodesioRは、イギリスの郵便番号検索とジオコーディングを提供します。
    • geosapiは、空間データを提供するために広く使われているオープンソース実装である「GeoServer」REST API用のRクライアントです。
    • geonapiは、地理メタデータを管理するためのオープンソースのカタログである「GeoNetwork」レガシーAPIへのインターフェースを提供します。
    • ows4Rは、データのためのWeb Feature Service(WFS)やメタデータのためのCatalogue Service(CSW)などの「OGC」標準Web-サービス用の新規Rクライアントです。
  • 地図作成:ビジュアルマップの作成を支援するサービス
    • OpenStreetMap:
      • osmplotrは、カスタマイズ可能な地図画像を抽出します。
    • Google Maps:
      • RgoogleMapsは、Googleサーバに静的な地図を問い合わせるための快適なRインターフェースを提供し、R内でプロットをオーバーレイするための背景画像として地図を使用します。
      • mapsapiは、Google Maps APIへのsf互換のインターフェースです。
    • ルーティング:距離や経路を計算し、最適化するサービス
      • OpenStreetMap:
        • osrmは、ルート、トリップ、アイソクロンス、移動距離マトリックスの計算を支援します。

ソーシャル・メディア・クライアント

以下のパッケージは、特に断りのない限り、関連するサービスへのインターフェースを提供します。

  • Twitter:
    • rtweetは、APIを通じてインターフェースを提供しています。
    • twitterreport(CRANにはありません)は、Twitterのデータに基づくレポート生成に焦点を当てています。
    • streamRは、Twitterのフィルターストリーム、サンプルストリーム、ユーザストリームにアクセスし、その出力をデータフレームにパースすることができます。OAuth認証に対応しています。
    • graphTweetsは、ツイートのdata.frameからネットワークグラフを生成します。
    • twitter_ideology(CRANではない)は、指定したTwitterユーザに対して政治思想の尺度(scaling measure)を実行します。
  • Facebook:Rfacebook
  • Instagram:instaR
  • LinkedIn:Rlinkedin
  • Stack Exchange:stackr(CRANではない)
  • Pinterest:rpinterest
  • VK:vkR ロシアを拠点とするソーシャル・ネットワーキング・サイトです。
  • Meetup:meetupr(CRANではない)
  • Brandwatch:brandwatchR
  • Hacker News:hackeRnews
  • Mastodon:rtoot
  • Slack:slackr
  • Discourse:discgolf(archived;CRANではない)は、Discourseのインスタンスへのインターフェースを提供するもので、Discourseサイト自体へのインターフェースではありません。

調査・アンケート・データ収集ツール

  • REDCap:
    • REDCapRredcapAPIは、オンライン調査や調査データベースを構築・管理するためのウェブアプリケーションであるREDCapからデータをエクスポート、インポートします。
    • パッケージの別のレイヤーは、REDCapTidieRtidyREDCapReviewRREDCapCASTREDCapDMなど、多くの一般的な操作を効率化するための追加の拡張機能を提供します。
  • Qualtrics:
    • qualtRicsは、オンライン調査およびデータ収集ソフトウェアプラットフォームであるQualtricsと対話するための機能を提供します。
  • Wufoo:
    • WufooRは、SurveyMonkey社の別のデータ収集ツールであるWufooからデータを取得します。
  • formr:
    • formrは、OpenCPUを介してRに依存するformrオンライン調査フレームワークの使用を容易にします。
  • Experigen:
    • Rexperigenは、音韻実験を作成するためのプラットフォームであるExperigenのクライアントです。
  • Usersnap:
    • useRsnapは、Webアプリケーションのユーザからのフィードバックを収集するためのツールであるUsersnapに接続します。
  • KoboToolbox:
    • robotoolboxは、KoboToolbox API からデータにアクセスして操作するためのユーティリティスイートです。

ウェブ解析

以下のパッケージは、ウェブ解析を容易にするオンラインサービスとのインターフェースを提供します。

以下のパッケージは、ウェブ解析を容易にするツールとのインターフェースを備えています。

  • webreadrは、Common and Combined Web LogフォーマットやAWSログなど、様々な一般的な形式のリクエストログを処理することができます。
  • WebAnalyticsは、Webアプリケーションのパフォーマンス、ワークロード、ユーザ数の解析のためのツールを提供します。webreadrと重複する部分もありますが、webreaderはログファイルの読み込みに重点を置いており、WebAnalyticsはその分析に重点を置いています。

出版

  • 文献・書誌・引用管理:
    • rorcidは、Orcid.org APIに接続し、科学的な著者とその出版物を(DOIなどで)特定することができます。
    • rdataciteは、学術データセットのDOIとメタデータを管理するDataCiteに接続します。
    • scholarは、Google Scholarから引用データを抽出します。
    • rscopusは、Elsevier Scopusから引用データを抽出します。また、複数のscholarを比較したり、将来のh-index値を予測するための便利な関数も提供されています。
    • mathpixは、Mathpixウェブサービスを介して数式(タイプセットまたは手書き)の画像を変換し、「LaTeX」コードを生成します。
    • zen4Rは、堆積物の管理、DOIの帰属、ファイルのアップロードなどのZenodo APIに接続しています。
  • 文献:
    • europepmcは、Europe PubMed Centralサービスに接続します。
    • pubmed.mineRは、PubMed Abstractsのテキストマイニングを行うもので、PubMedからのテキストとXMLの取得をサポートしています。
    • jstorは、JSTORのData for Researchサービスから、メタデータ、ngram、フルテキストを取得します。
    • aRxivは、コンピュータサイエンス、数学、物理学、計量生物学、計量金融、統計学のプレプリントの電子レポジトリであるarXivに接続します。
    • roadoiは、学術論文の無料フルテキスト版を検索するためのUnpaywall APIに接続します。
    • rcrossrefは、CrossrefのAPIへのインターフェースです。

合成データを生成

  • MockaRoo API:
    • mockaRoo(CRANではない)入力スキーマに基づき、模擬または偽のデータを生成する。
  • RandomAPI:
    • randNamesは、ランダムな名前と個人識別情報を生成します。

スポーツアナリティクス

多くのCRANパッケージは、スポーツ分析を促進するサービスと相互作用します。このトピックのより完全な扱いについては、SportsAnalytics CRAN Task Viewをご覧ください。

再現性のある研究

このWeb Technologiesタスクビューのパッケージを使用することで、プログラム的にデータを取得することができ、再現可能な研究を促進することができます。その他のツールや情報についてはReproducibleResearch CRAN Task Viewを参照してください。

「再現可能な研究の目標は、データ解析や実験データに特定の指示を結びつけ、学問を再現し、理解し、検証できるようにすることです。」

その他Webサービス

  • プッシュ通知:
    • RPushbulletは、コンピュータ、電話、タブレット間で迅速かつ効率的な通知を提供するPushbulletサービスの使いやすいインターフェースを提供します。
    • pushoverrは、「Pushover」を使用してモバイルデバイス(iOSおよびAndroid)とデスクトップにプッシュ通知を送信できます。
    • notifymeは、フィリップスHue照明を制御できます。
  • メタデータの自動収集:
    • oaiOAIHarvesterは、Open Archives Initiative Protocol for Metadata Harvesting(OAI-PMH)標準を使用してメタデータを収集します。
  • ウィキペディア:
  • rerddap
    • OPeNDAP (https://en.wikipedia.org/wiki/OPeNDAP) (Open-source Project for a Network Data Access Protocol) の特別なケースであるERDDAPインスタンスと対話するための汎用Rクライアントです。
    • ERDDAPインスタンスを使用するために、ベースURLを交換することを可能にします。
  • duckduckrは、DuckDuckGoへの R インターフェースです。

3.WebベースのRアプリケーションを構築するためのフレームワーク

  • Model Operationalization(旧DeployR)は、RやPythonのモデルやコードをWebサービスとしてサーバに配備し、後で利用するためのサポートを提供するMicrosoft製品です。
  • shinyは、Rを使ったインタラクティブなWebアプリケーションを簡単に構築することができます。
  • dashRは、Python、R、Juliaで利用できるWebフレームワークで、コンポーネントはReact.jsで書かれています。
  • その他のWebフレームワークとしては、shinyよりも柔軟性が高いが使い勝手が悪いとされるfieryreqresroutrは、それぞれHTTPリクエストとレスポンスのクラス、HTTPルーティングを提供するfieryが使用するユーティリティ)、iPythonノート型のWebベースのRインターフェースを提供するrcloud、Rookアプリケーションの構築と実行のための仕様と便宜ソフトウェアを含むRookがあります。
  • 組み込み統計計算と再現可能な研究のためのopencpuフレームワークは、R、LaTeX、Pandocと連携するWeb APIを公開しています。このAPIは、例えば、統計機能をシステムに統合したり、スクリプトやレポートを集中サーバで共有・実行したり、Rベースのアプリを構築したりするために使用されます。
  • Rのためのいくつかの汎用サーバ/クライアントフレームワークが存在します。
    • RserveRSclientは、TCP/IPやローカルソケットのインターフェースに対応したサーバとクライアントの機能を提供します。
    • httpuvは、HTTPとWebSocketのリクエストをRで直接処理するための低レベルのソケットとプロトコルをサポートします。
    • また、httpuvに代わる関連パッケージとして、websocketがあります(CRANから削除)。
    • servrは、httpuvに基づいて、与えられたディレクトリの下のファイルを提供するシンプルなHTTPサーバを提供します。
    • RのコードをWeb APIに変換するための機能を提供するパッケージがいくつかあります。
      • FastRWebは、このための基本的なインフラを提供しています。
      • plumberは、既存のRソースコードを装飾してREST APIを作成できます。
      • beakrは、python FlaskやJavaScript Express.jsに見られる機能のRバージョンを提供します。
    • RDCOMClient(CRANではない)は、Rから他のCOMサーバへのユーザレベルのアクセスを提供します。
    • radiantは、サーバやローカルマシンからブラウザ上で動作するShynyベースのR用GUIです。
    • Wiki CMS/グループウェアのフレームワーク「Tiki」にはRプラグイン(PluginR)があり、WikiページからRコードを実行したり、独自に収集したWebデータベース(トラッカー)からデータを利用することができます。デモ:https://r.tiki.org/tiki-index.php
    • whisker :「Mustache」に基づくロジックレス・テンプレーティングのRでの実装。
    • Mustacheの構文は、http://mustache.github.io/mustache.5.htmlで説明されています。

その他の便利なパッケージ・機能

  • JavaScript:
    • V8は、Googleのオープンソースで高性能なJavaScriptエンジンへのRインターフェースです。
    • JavaScriptライブラリやNPMパッケージをラップすることができます。
    • jsは、V8をラップし、JavaScriptコードの検証、再フォーマット、最適化、分析を行います。
  • メール:
    • mailRは、Rからメールを送信するためのApache Commons Emailへのインターフェースです。
    • sendmailRは、シンプルなSMTPクライアントを提供します。
    • gmailrは、Googleのgmail.com RESTful APIへのアクセスを提供します。
    • Microsoft365Rは、MicrosoftのOutlookメールサービス(個人向け(outlook.com)、Microsoft 365(旧 Office 365)スイートの一部)のクライアントを提供します。
  • モッキング:
    • webmockrは、HTTPリクエストのモックを作成し、期待値を設定します。
    • Rubyのwebmockからヒントを得ています。
    • webmockrは、HTTPリクエストのモックを支援するだけで、リクエストが期待値に一致した場合は何も返しません。
    • crulhttrと統合されています。
    • 返されたレスポンスでモックする方法についてはTestingを参照してください。
  • テスト:
    • vcrは、RパッケージのテストスイートでHTTPリクエストを簡単にキャッシュするためのインターフェースを提供します(ただし、テストの使用例以外でも使用できます)。
    • vcrは、HTTPリクエストのモッキングを行うためにwebmockrに依存しています。
    • vcrは、crulおよびhttrと統合されています。
    • httptestは、HTTP APIと通信するパッケージをテストするためのフレームワークを提供します。
    • APIをモックするためのツール、モックとして使用するための実際のAPIレスポンスを記録するためのツール、HTTPリクエストに関するアサーションを行うためのツールを提供し、すべて実行時にAPIサーバへのライブ接続を必要としません。
  • その他:
    • webutilsにはウェブアプリケーションを開発するための様々な機能が含まれており、application/x-www-form-urlencodedやmultipart/form-dataのパーサーが含まれています。
    • mimeは、ファイルの拡張子からMIMEタイプを推測します。
    • rsdmxは、Statistical Data and Metadata Exchange(SDMX)フレームワークを通じて交換されたデータとメタデータドキュメントを読み込むためのツールを提供します。
    • SDMX XML標準フォーマット(SDMX-ML)に焦点をあてています。
    • robotstxtは、robots.txtファイルの解析やアクセス権のチェックのための関数とクラスを提供します。
    • spiderbarも同様です。
    • uaparserjsは、JavaScriptの“ua-parser” libraryを使用して、User-Agent HTTPヘッダをパースします。
    • rapiclientは、Open API formatに従った API を消費するためのクライアントです。
    • restfulrは、RESTful サービスをネストされた R リストのようにモデル化します。

4.低レベルの操作

URLを扱うためのツール

  • httr::parse_url()関数は、URLの一部を抽出するために使用することができます。
    • RCurl::URLencode()とutils::URLencode()関数は、URLで使用する文字列をエンコードするために使用されます。
    • utils::URLdecode()は、元の文字列にデコードして戻します。
    • urltoolsは、URLのエンコード、デコード、パース、パラメータ抽出を処理することもできます。
  • ipaddressは、IPアドレスとネットワークの操作を容易にします。
  • urlshorteneRは、Bit.ly、Goo.gl、is.gdのURL展開と分析を提供します。
    • longurlは、longurl.org APIを使用して同様の機能を提供します。
  • gdnsは、Googleの安全なHTTPベースのDNS解決サービスへのアクセスを提供します。

インターネット通信のための追加ツール

専門的な場面では、以下の資料が参考になります。

  • RCurlは、libcurlのもう一つの低レベルクライアントです。
    • 2つの低レベルのcurlクライアントのうち、curlを使用することをお勧めします。
    • httpRequestは、GET、POST、およびマルチパートPOST動詞を実装したHTTPリクエスト用の別の低レベルパッケージですが、その使用は推奨しません。
  • requestは、他のAPIクライアントパッケージを開発する際に便利な高水準のパッケージを提供します。
    • httpingは、httrコールを中心に、HTTPリクエストのpingや時間計測を行う簡便なツールを提供します。
    • httpcacheは、HTTPリクエストをキャッシュするための機構を提供します。
  • nanonextは、HTTPやストリーミングのWebSocketリクエストを、独自の同時実行フレームワーク上で同期または非同期に実行するために使用できる、代替の低レベルソケットの実装です。バックエンドとして NNG/mbedTLSライブラリを使用します。
  • 動的に生成されるウェブページ(つまり、結果を表示するためにユーザの操作が必要なページ)では、RSeleniumを使用してこれらの操作を自動化し、ページの内容を抽出することが可能です。
    • 「JsonWireProtocol」を使用したSelenium 2.0 webdriver用のバインディングセットを提供します。また、自動化されたアプリケーションテスト、負荷テスト、ウェブスクレイピングを支援することができます。
    • seleniumPipesは、「パイプ」指向のインターフェースを提供します。
  • 認証:
    • Webリソースの利用には、APIキー、OAuth、ユーザ名とパスワードの組み合わせ、またはその他の手段による認証が必要な場合があります。さらに、認証を必要とするウェブリソースがhttp呼び出しのヘッダにある場合もあり、その場合は少し余分な作業が必要になります。APIキーとユーザ名:パスワードの組み合わせは、Webリソースを呼び出すためのURL内で組み合わせることができ、RCurlhttrのコマンドで指定することができます。
    • OAuthは最も複雑な認証プロセスで、httrを使用することで最も簡単に実行することができます。
  • httr内の6つのデモをご覧ください。
    • OAuth 1.0用の3つ(LinkedIn、Twitter、Vimeo)とOAuth 2.0用の3つ(Facebook、GitHub、Google)です。
    • ROAuthは、OAuthとは別のRインターフェースを提供します。
    • OAuthは、httrで行うのが簡単なので、そちらから始めてください。
    • googleAuthRは、Googleウェブサービス専用のOAuth 2.0のセットアップを提供します。
    • AzureAuthは、Azure Active Directory用の同様の機能を提供します。

HTTPエラー/コードの処理

  • fauxpasは、個々のHTTPステータスコードに対して、RubyやPythonのようなR6クラスのセットをもたらし、シンプルで冗長なメッセージを可能にし、メッセージ、警告、停止を使用するかどうかを選択することができます。
  • httpcodeは、ユーザやパッケージが HTTP ステータスコードや関連するメッセージを名前や番号で見つけるのを助けるためのシンプルなパッケージです。

セキュリティ

  • securitytxtは、Web Security のポリシーファイルを識別し、解析します。
R言語 CRAN Task View:Web技術とサービス

R言語 CRAN Task View:Web技術とサービス」への1件のフィードバック

コメントは受け付けていません。