私は uni の年次報告書を書いています。この報告書では、過去 1 年間で R の使用がどのように増加したかを詳しく説明したいと思います。R の使用状況を説明するために使用できるメトリックを探しています。使用方法を説明するためのいくつかの可能なメトリック:
- 履歴のコード行数
- エラー数
- プログラムの使用時間
- 特定の関数が呼び出された回数
- 作成されたプロットの数
私の質問は、R から上記のいずれかを抽出できますか、または R の使用法を示す他のメトリックを抽出できますか?
私は uni の年次報告書を書いています。この報告書では、過去 1 年間で R の使用がどのように増加したかを詳しく説明したいと思います。R の使用状況を説明するために使用できるメトリックを探しています。使用方法を説明するためのいくつかの可能なメトリック:
私の質問は、R から上記のいずれかを抽出できますか、または R の使用法を示す他のメトリックを抽出できますか?
まず、この質問がスタック オーバーフローに適しているかどうかはわかりません。第二に、あなたが特定した指標はあまり適切ではないと思います。これまでに候補リストに挙げたものを見てみましょう。
履歴のコード行数
コードに多くの調整を加えます。それらはあなたの歴史に蓄積されます。履歴には多くのコード行が含まれています。それはあなたのRの使用を積極的に反映していますか? または、R で次のようなコードを書きたい場合:
temp <- 0
for (i in 1:10) {
temp <- temp + i
}
print(temp)
R に精通している人はただsum(1:10)
. 1 行対 5 行。行数が良い指標であると本当に言えるのでしょうか?
エラー数
たぶん、これにはいくつかのメリットがあります。しかし、何らかの方法でエラーを分類するつもりですか? ブラケットの紛失または置き忘れは許されますか? エラーや警告が発行されないにもかかわらず、R が予期しない方法で動作し、予期しない結果につながる場合はどうでしょうか (たとえば、とが同じように動作するnumeric(0)
と仮定します)。いくつかの R の落とし穴についてはこちらfactor(0)
を参照してください。そのうちのいくつかはエラーの兆候を示しませんが、間違いなく誤った分析につながる可能性があります。このメトリクスでそれらをどのように分析しますか?
プログラムの使用時間
繰り返しますが、議論の余地があります。時間数はどうやって測るの?コーディングに費やした時間は?コンピューターがコードの処理に費やす時間は? 問題をプログラムする方法を理解するのに時間がかかりましたか?
特定の関数が呼び出された回数
この指標がまったくわかりません。あいまいな関数ほど重要度が高くなりますか (たとえば、あなたが を使用vapply
し、残りのシュマックが を使用している場合、 を使用する方が安全である (場合によっては高速である) ため、使用することでボーナスsapply
ポイントが得られますか?)vapply
プロット数
申し訳ありませんが、この指標についてはまったく理解できません。まず第一に、すべてのプロットが同じように作成されるわけではありません! データ視覚化の分野では、多くのソフトウェアがデータ視覚化を台無しにしたと感じている人が何人かいます。これは、一部のソフトウェア (特に非常に人気のあるスプレッドシート プログラム) によって、人々が派手なプロットをすばやく簡単に作成できるようになったためです。R を使用すると、デフォルトであまり派手ではなくなりますが、それ自体は良いことにはなりません。したがって、品質評価のための他の基準なしで大量生産されたプロットの数を測定しているだけの場合、このメトリックがどのように役立つかわかりません.
そして、あなたのコメントからあなたの質問へ:
実は…スタック オーバーフローの評判ポイントは、何よりも優れている可能性があります。
ええと...私がRを実際に使用するのは、スタックオーバーフローに関する質問に答えるときだけです(残念ながら本当です)。同時に、ここでの私の評判ポイントのほとんどは、R タグで回答した質問によるものです。確かに、ここには私が本当に信頼できるユーザーが何人かいますが、時には自分自身を信頼していないこともあるので、それがあなたの R の使用状況の良い指標であるかどうかはわかりません.
多くのユーザーは、スタック オーバーフローの投票が完全に風変わりであると不満を漏らしているため、「評判」をスキルの有効な尺度として本当に使用できるかどうかはわかりません。たとえば、「簡単な」質問への回答は非常に迅速に投票される (多くの場合、コードを実行しなくても検証が容易なため) 一方で、「複雑な」質問への回答は投票にならないという一般ユーザーの間で進行中の議論があります。質問に答えるために費やした労力に比例します。適切な例: 本質的に、Google で 2 分で既に簡単に入手できるデータの並べ替えられたバージョンである回答に対して、なぜ私は「達人」バッジを持っているのでしょうか。私はその答えを特に誇りに思っているわけではありません.Rの私の「使用法」については何も言っていません.
さて、これをあなたの質問自体に対する単なる拡張コメントではなく、回答として適格にするために、私が有効だと考える最大のものは、それを測定する方法がわかりませんが、あなたがどれだけ積極的であるかのようなものになりますR コミュニティ。R に参加するには、パッケージの作成や貢献、バグ レポートの提出、R への切り替えを支援するためのワークショップの実施など、さまざまな方法があります。
ここにいる他の何人かが書いたように、あなたが本を書く必要があるとか、アンダースコアの信奉者のカルトを持つ伝説的なパッケージ開発者になる必要があると言っているわけではありませんが、小さな一歩を踏み出すことはできます。たとえば、私は作文の教師ですが、学生向けのワークショップを開催し、R の使い方を紹介するためだけに「入門のヒント」をいくつか書いて、R をツールキットに追加することを検討できるようにしました。ここにいる他の多くのユーザーは、R を使用した経験について定期的にブログに書いています。これもコミュニティの一部であるため、その過程で多くのことを学んでいます。
最後に、さらにいくつかのアイデアを示します。
@PaulHiemstra は、彼のコメントで、「R で行うプログラミング作業の割合について言及する」ことができると提案しました。私はその概念を次のように拡張します: (1) R と R を補完するツール (Sweave/knitr/LaTeX のような明白なものが思い浮かびます) で全体的な作業のどれだけが行われたかを測定しようとし、(2) 測定しようとしますR を使用することで、全体的なスキルの向上にどの程度の影響がありましたか(論理的に言えば、優れたプログラミングには、論理的思考、慎重な構成、優れたドキュメントなどが付随することがよくあります)。
前のポイントに関連して、R の使用が時間とともにどのように変化したかを確認してみてください。同じ手順を手動でやり直すことから関数を記述することへと、あなたの行動は変わりましたか? その後、特定の時点で抱えていた特定の問題を解決するのではなく、より多くのユーザーがより一般的に使用できるように、これらの機能を調整しましたか? これらは、特に言語をゼロから始めた場合は非常に重要な変更であり、質問で提示したアイデアよりも少し意味のあるものになる可能性があります.
つまり、要約すると、質問で特定した幾分簡単に定量化できるものの多くは、おそらく非常に無意味な分析につながるでしょう。あなたが行う定性的なインプットは、はるかに価値があると思います。
別のメトリック: 古くて複雑な (持っているかどうかわからない) コードを取得し、0 からやり直します。計算時間の差をメトリックとして使用します。