「Devtoolsを使ったRデータパッケージの作成と公開の詳細ガイド」

「デヴツールを活用したRデータパッケージの詳細な作成と公開ガイド」

Roy Kentによるエクスプレッションカウントをフィーチャーした、私の「Richmondway」Rデータパッケージの開発のステップバイステップの説明

Erda Estremeraによる写真(Unsplash)

2023年のPositカンファレンスで講演する機会があり、アニメーションとインタラクティビティを活用したストーリーテリングについてプレゼンテーションするための完璧なデータセットを検討しました。興味深いデータセットはすでに使われ尽くされているようで、ありきたりなデータセットをベースにプレゼンテーションをすることにはインスピレーションがわきませんでした。そこで、ある日、アメリカのスポーツコメディドラマテレビシリーズである「Ted Lasso」のエピソードを一気に見ながら、Roy Kentの洗練されたフ**クという言葉を聞いてアイデアがひらめきました。このシリーズを再視聴し、Royが「F**k」という言葉を使用した回数やジェスチャをカウントしました。これが私のデータセットになりました!この記事では、このデータセットをRデータパッケージに変換するために私が行った詳細な手順を紹介します。それにより、簡単に自分自身でデータセットを作成できるようになります。

私の初めてのRデータパッケージであるRichmondwayの作成にようこそ。このパッケージを使用すると、エピソードごと、シーズンごとにRoy Kentのレクシコンの詳細を掘り下げるためのデータをダウンロードできます。そして、誰もが聞いていない質問についての最終的な回答をすることができます。それは、「Roy Kentはどのシーズンで最もF**kと言ったのか?」です。

Deepsha Menghaniによる元:Posit Conference 2023 presentation

なぜパッケージを作成したのか?

  • Rパッケージの作成方法を学びたいと思っていました。簡単なデータパッケージから始めるのは素晴らしい初めの試みです。
  • 関数テストのためのデータの埋め込みは重要です。これにより、ユーザーはパッケージの機能に慣れることができます。将来的には複雑なパッケージにも必要な手順です。
  • このデータセットは面白すぎて、自分だけで楽しむのはもったいないと思いました。パッケージ化することで、カンファレンス後に誰でも簡単にアクセスできるようにしました。

ですので、Rデータパッケージの作成に興味がある人や「Ted Lasso」のファンの方々、お茶を入れて一緒に探求していきましょう!

Rデータパッケージの作成に使用した詳細な手順

ステップ0:データセットとパッケージの名前

こちらが「richmondway」という名前のデータセットのスナップショットです。各エピソードに対応する34行と、作成するパッケージで説明されるさまざまな値を持つ16列があります。

パッケージの名前を付けることは、ペットの名前を付けることのように非常に特別です。忘れられない名前を選ぶことが望ましいですが、特に公開するつもりであれば、シンプルな名前にすることも重要です。私は「Richmondway」と名付けました。これは、Ted Lassoに出てくるサッカークラブであるAFC Richmondに敬意を表しています。そして、「R」で始まっているのは幸運な偶然です。また、名前がパッケージの中身を明確に示すことも望んでいました。

ステップ1:ツールキットのインストール

devtoolsusethisroxygen2のRパッケージをインストールしてください。これらを使用すると、新しいパッケージの構造化とドキュメント化が非常に簡単になります。

install.packages(c("devtools", "usethis", "roxygen2"))

ステップ2:プロジェクトとして新しいパッケージを作成する

devtoolsを使用してパッケージを作成する方法は2つあります。Devtoolsは初期のパッケージ構造のセットアップを世話します。

方法1:RStudioコンソールから直接作成する

devtoolsを使用してRパッケージのプロジェクトを作成するスクリーンキャスト

方法2:`usethis`パッケージを使用する

usethis::create_package()コマンドを使用すると、パッケージディレクトリを作成するパスを指定して新しいパッケージを直接作成できます。この記事の残りの部分では、パッケージの作成とドキュメンテーションのステップをスムーズかつ迅速に進めるための他のusethisコマンドを紹介します。

usethis::create_package("path/richmondway")

これで、Rパッケージの必要最低限の要素を持つフォルダが作成されました。中を覗いてみると、いくつかの謎めいたファイルが見つかるでしょう。心配は無用です、一つずつ理解していきましょう。以下にプロジェクトの一部として作成されるファイルを示します。

プロジェクトの最初のホームディレクトリ

ステップ3:データセットの追加

データセットをローカル環境に「richmondway」という名前で保存していました。以下のコマンドを実行すると、パッケージのルートに/dataディレクトリが追加され、その中に".rda"ファイルが配置されます。

usethis::use_data(richmondway)
「data」フォルダ内の「richmondway.rda」という名前の単一のファイル

ステップ4:データディクショナリ`data.R`を作成する

ここでデータセットについて説明します。信頼してください、説明が良ければ、そのポテンシャルを引き出すのは他の人にとっても簡単です。この後のステップでドキュメンテーションにフィードされます。以下のコマンドを使用してこのファイルを作成し、後で必要な詳細を更新します。

usethis::use_r("data")

このコマンドにより、Rフォルダ内にdata.Rファイルが作成されます。このファイルの内容を更新して、データセットに含まれるフォーマットと列を記述します。私のデータセットにはさらに多くの列がありますが、この例では3つの列のみを表示しています。データセットパッケージのドキュメンテーションに表示されるように、可能な限り明確にすべての列の説明を追加してください。以下のフォーマットは、data.Rファイル内で使用されるものです。

#' f**k数を示すデータ#'#' Roy Kentによってテッド・ラッソで使用されたf**kの回数を含むデータセット。#'#' @format 34行16列のデータフレーム。#' \describe{#' \item{Character}{単一値 - Roy Kent}#' \item{Episode_order}{最初から最後までのエピソードの順序}#' \item{Season}{カウントに関連するシーズン1、2、または3}#' }#' @source ショーを視聴し、文章やジェスチャーで使用されたF**kの数をカウントしたDeepsha Menghaniによって作成されました。#'#' @examples#' data(richmondway)"richmondway"

このファイルをコンポーネントごとに分解してみましょう:

説明コメント:

#' ファックの使用回数を示すデータ#' ファックという単語が Ted Lasso の Roy Kent によって使用された回数を含むデータセット。

これはデータセットの短いタイトルと説明です。 #' で始まるコメントは、R オブジェクトに注釈を付けるための特別な方法で、R でドキュメンテーションを作成するために使用される roxygen2 パッケージによって取得されます。

フォーマットコメント:

#' @format 行数が 34、列数が 16 のデータフレーム。

これはデータの形式を指定しています。この場合、データセットは行数が 34、列数が 16 のデータフレームです。

変数の説明:

#' \describe{#' \item{Character}{シングル値 - Roy Kent}#' \item{Episode_order}{1 番目から最後までのエピソードの順序}#' \item{Season}{回数に関連するシーズン 1、2、または 3}#' }

この部分では、データフレームの主要な変数/列の詳細な説明を提供しています。 \describe ブロックは、各変数を \item タグで表したもので、変数の名前とその説明をリストアップして説明します。

ソースコメント:

#' @source ショーを視聴し、文やジェスチャーに使用された F**k の回数を数え、Deepsha Menghani によって作成

これはデータの起源またはソースに関する情報を提供します。作成者をクレジットし、データの収集方法に関する文脈を提供することが重要です。

例コメント:

#' @examples #' data(richmondway)

これはユーザーがデータセットにアクセスして使用する方法の例を提供します。この場合、R にデータをロードする方法を単純に示しています。

データ名:

"richmondway"

これはデータセットの名前です。これはパッケージ内のその名前のデータセットに関連するドキュメンテーションであることを示すためにクォートで囲まれています。

ユーザーが R でパッケージをインストールして読み込み、?richmondway と入力すると、データセットに関するこのドキュメンテーションが構造化された形式で表示され、データセットの内容、構造、および使用方法を理解するのに役立ちます。

ステップ 5: “DESCRIPTION” ファイルの更新

説明ファイルはパッケージのより上位レベルのドキュメンテーションです。パッケージのホームフォルダにある DESCRIPTION ファイルを確認してみてください。それは事前に指示で埋められているはずですが、適切な説明に更新する必要があります。私が説明ファイルで更新した項目は以下の通りです。残りのフィールドはデフォルトのままにしました。

Package: richmondwayTitle: テッド・ラッソの Roy Kent がファックという単語を使用した回数を含むデータセットAuthors@R: person("Deepsha", "Menghani", email = "[email protected]", role = c("aut", "cre"))Description: テッド・ラッソの Roy Kent がファックという単語を使用した回数を含むデータセットをダウンロードします。License: file LICENSE

ステップ 6: “LICENSE” ファイルの作成

このファイルはパッケージの履歴書のようなものです。注意する点は、私の DESCRIPTION ファイルで LICENSE というファイルに言及していることです。このファイルはまだ存在しないので、作成します。これは、ライセンス情報が格納されているファイルを参照します。ライセンス情報は、このパッケージを通じて利用可能なデータの使用方法、つまり権利について、パッケージのユーザーに伝える役割を果たします。私の場合、CC0 ライセンスを使用し、次のコマンドを使用して標準の説明を LICENSE ファイルに追加しました。

license_text <- 'CC0 1.0 Universal (CC0 1.0) Public Domain DedicationThe person who associated a work with this deed has dedicated the work to the public domain by waiving all of his or her rights to the work worldwide under copyright law, including all related and neighboring rights, to the extent allowed by law.You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission.For more information, please see<http://creativecommons.org/publicdomain/zero/1.0/>'writeLines(license_text, con = "packagepath/LICENSE")
プロジェクトホームディレクトリに新しく作成されたLICENSEファイルが強調表示されています

ステップ7:ドキュメンテーションを読み込む

すべてのファイルが作成および更新されたので、以下の便利なコマンドを使用してドキュメンテーションを読み込みます。このコマンドは、データの説明が追加されたdata.Rファイルを使用してドキュメンテーションを作成します。このドキュンメントは、manという新しく作成されたフォルダに配置されます(manはマニュアルの略です)。

devtools::document()
プロジェクトホームディレクトリに新しく作成された「man」フォルダが強調表示されています

ドキュメンテーションのコマンドが実行されたら、ヘルプコマンド?richmondwayを使用して、パッケージのドキュメンテーションが開くはずです。ドキュメンテーションが明確であり、data.Rファイルからの必要な詳細が正しく表示されているか確認してください。

ステップ8:チェック

以下のコマンドを実行して、すべてがスムーズに動作し、完璧に作成されていることをテストできます。このコマンドは、パッケージの一貫性と有効性を確認するために、さまざまなチェックを実行します。

devtools::check()

devtools::check()の出力には、注意、警告、エラーがあり、それぞれが異なる注意を必要とします。

エラー:重要な問題を示すため、すぐに修正する必要があります。警告:機能とCRANの適合性を確保するために対処する必要があります。注意:有益なアドバイスと提案を提供し、場合によってはCRANの提出のために対処する必要があります。

ステップ9:ローカルにパッケージをインストールしてテストする

devtoolsからの以下のコマンドを使用して、パッケージをローカルにインストールします。その後、data.Rファイル内の例で共有したとおりの方法を使用してデータにアクセスします。

devtools::install() # パッケージをローカルにインストールdata(richmondway) # パッケージを介してデータにアクセス

ステップ10:新しいパッケージをGitHubに公開する

今度はGitリポジトリを初期化し、usethisコマンドを使用してパッケージをGitHubにプッシュします。これらのコマンドを実行する前に、GitHubアカウントを持っており、GitHubでSSHキーまたはパーソナルアクセストークン(PAT)を設定していることを確認してください。

usethis::use_git() # Gitの統合usethis::use_github() # GitHubの統合

usethis::use_git()は何をするのですか

  • Gitの初期化: この関数はプロジェクトで新しいGitリポジトリを初期化します。
  • 最初のコミット: 現在のプロジェクトの状態で最初のコミットを作成します。

usethis::use_github()は何をするのですか

  • GitHubリポジトリの作成: この関数は新しいGitHubリポジトリを作成し、ローカルのGitリポジトリをリモートのGitHubリポジトリに接続します。
  • 認証: GitHubとの認証を設定するのに役立ちます。GitHubとの認証が確立されているかどうかをチェックします。されていない場合は、促されることがあります。
  • プッシュ: ローカルのGitコミットをリモートのGitHubリポジトリにプッシュします。

ステップ11: 最後にパッケージを世界と共有する

パッケージリポジトリのリンクを共有できるようになりました。誰でもGitHubからdevtools::install_github("your_username/packagename") を使用してパッケージを直接インストールし、データにアクセスすることができます。

例えば、私のGitHubリポジトリパッケージ内のrichmondwayからデータにアクセスするには、以下のコマンドを使用します:

devtools::install_github("deepshamenghani/richmondway")

おめでとうございます!

このポイントに達したら、おめでとうございます!楽しい連続視聴を教育的で楽しいものに変えることに成功しました。

この楽しいデータセットを自由に使って分析や可視化を行い、タグ付けしてください。または、GitHubでrichmondwayをフォークしてロイ・ケントの辞書に貢献することもできます。引き続き活動を続けましょう!

リソース

  1. Richmondwayパッケージリポジトリ
  2. Rパッケージ by Hadley Wickham and Jennifer Bryan
  3. Roxygen2ドキュメント
  4. Usethisパッケージ
  5. Devtoolsパッケージ

Happy coding! もしよければ、Linkedinで私に連絡してください。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more