問題タブ [reproducible-research]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python / Spyder で作業ディレクトリを設定して、再現できるようにします
Rから来てsetwd
、ディレクトリを変更するために使用することは、再現性に対して大きなノーノーです。他の人は私のものと同じディレクトリ構造を持っていないからです。したがって、スクリプトの場所からの相対パスを使用することをお勧めします。
IDE は独自の作業ディレクトリを設定するため、これが少し複雑になります。Rstudio では、プロジェクトのディレクトリを自分のスクリプト フォルダーに設定することで、Rstudio のプロジェクトでこの問題を簡単に回避できます。
Python と Spyder では、解決策はないようです。Spyder には Rstudio のプロジェクトのような機能はありません。スクリプトの場所へのディレクトリの設定は、対話型分析の実行中は機能しません (__file__
使用できないため)。
Python / Spyder の作業ディレクトリを再現可能にするにはどうすればよいですか?
r - マッチングと置換により段落変数の名前を匿名化する
学校の生徒の成績表データベースを分析しています。私のデータセットは、以下の例と同様に構造化された約 3000 のレコードで構成されています。各観察は、1 人の生徒に対する 1 人の教師の評価です。各観察には、3 文の物語のコメントが含まれています。
私の分析結果を共有するために、コメントから学生の名前の言及を取り除き、他の名前に置き換えたいと思います。理想的な世界では、再現性のために匿名化されたバージョンのデータベースも共有したいと考えています.
学生の名前の一貫性のない使用法 (名 vs ニックネーム vs フルネーム) と学生の名前の構造化されていない使用法は、私のようなアマチュアにとってこれを非常に扱いにくいものにしています。この問題を解決するための私の試みは、コーパス内のドキュメントとしてコメントにアプローチし、使用する関数を作成するtm::removeWords
ことでしたが、うまくいきませんでした。前もって感謝します!
サンプルデータ(ここに表のdput)
希望するデータ
注意
4か月前、私はこの質問のバージョンを尋ねましたが、返事はありませんでした. 私のソリューションを示すのに役立つと思いましたが、おそらくtm
パッケージは広く使用されていません. ということで、もう一枚。
r - 区分回帰 : セグメント化された R パッケージでのブレークポイント検出の再現性の問題
パッケージの助けを借りて、データに 3 個の回帰を当てはめようとしていますがsegmented
、少し迷っています...
最初:ここに再現可能な例があります:
2 つの目に見えるブレークポイントを持つ私のデータ:
- まず、既知のブレークポイント数を K=2 で指定してみました:
-しかし、設定した場合2<K<8
(間違った値...)、正しい数のブレークポイントを検出できます:
- そして、私を困惑させる最後のポイント:
K=4 に設定すると、display=T オプションは 3 つのブレークポイントを含む結果を表示しますが、関数の出力にはまだ 2 つのブレークポイントがあります...
******2016 年 9 月 19 日の編集*******
psi
ブレークポイントの場所にいくつかの事前情報があるため(ただし、それは私の目標ではありません)、直接指定してみましたが、結果はまだ非常に悪いsegmented
です...
一部の回帰では、アルゴリズムが成功して解決策が得られるまで、何度も関数を実行する必要がありました。また、提案された解決策にはしばしば再現性の問題があります...
これらのブレークポイントを確実に推定する方法を知っている人はいますか? 私のデータを当てはめるのはそれほど難しくないようですね。
r - 再現可能な長い foreach ループをいくつかの小さなループに分割する
Rでは、単一の長い並列forループをいくつかの短いループに分割し、それらを再現可能で同一に保つ方法はありますか?
doRNG
およびパッケージでこれを実行しようとしましたforeach
が、いくつかの短いループを続けて使用すると、RNG シードは 1 つの長いループを使用した場合と同じではないため、結果が異なります。
====
サンプルコード
html - R のファクトシート - cat()、flexdashboard()、または Markdown?
約 20 のプロジェクトの標準化された情報を示すファクトシートを作成しようとしています。この情報を (進捗状況を観察するために) 毎週更新し、HTML ファイルにしたいと考えています。私はこのようなものを作成することを考えていました: http://htaindex.cnt.org/fact-sheets/?focus=cbsa&gid=741
使用できるオプションは 3 つあります。
- frenkenstein アプローチ: ダミーのファクトシートのすべての html を記述してから、R でデータをそれにマッシュアップし、ファイルを出力します
cat()
。私が本当に派手になりたいのであれば、html と css の壁で実装者が心臓発作を起こさないように、html と一緒にデータをエレガントにマッシュアップするカスタム関数を定義することもできます。 - 限定的なアプローチ: アセットを行または列の方向に配置できるフレックスダッシュボードを使用できますが、実際には組み合わせることはできません。これは私の創造的なオプションを制限しますが、はるかに高速で再現性が高く、デバッグ可能です.
- 正しいアプローチ:ここに記載されているようにマークダウン テンプレートを作成する必要があると人々は言うと思いますが、それは信じられないほど時間がかかり、pandoc に慣れる必要があるように見えます。 .
私の質問 (できれば広すぎないことを願っています) は、次のとおりです。
python - Jupyter ノートブックの関数の単体テスト?
繰り返し実行する予定の Jupyter ノートブックがあります。その中に関数があり、コードの構造は次のとおりです。
と のテストを書きたいと思いconstruct_url
ますscrape_url
。これを行う最も賢明な方法は何ですか?
私が検討したいくつかのアプローチ:
- 関数をユーティリティ ファイルに移動し、標準の Python テスト ライブラリでそのユーティリティ ファイルのテストを記述します。おそらく最良のオプションですが、すべてのコードがノートブックに表示されるわけではありません。
- テスト データを使用して、ノートブック自体にアサートを記述します (ノートブックにノイズを追加します)。
- 特殊な Jupyter テストを使用して、セルの内容をテストします (セルの内容が変更されるため、これが機能するとは思わないでください)。
python - Python + numpy: 同じコード、異なる数値結果
私が興味を持っているいくつかの本当に面白い動作を特定しました。最終的には、科学計算の理由から完全に再現可能なコードが必要です。
とにかく、これは出力付きのコードのスニペットです。ご覧のとおり、同じ計算でもわずかに異なる結果が得られます。
出力は次のとおりです。
私の 2 つの変数は、 1 次元x
とP
2 次元の numpy 配列です。しかし、どういうわけか、同じ簡単な計算でも異なる結果が得られます。さらに、ループの反復ごとに、同じ結果が得られない試行は異なります。この場合、たとえば、i = 0
試行では問題はありませんでしたが、計算では について同じ結果が得られませんでしたi = 1
。
a1
興味深いことに、中間値をとに保存しないとa2
、結果は同じになります。
出力あり:
ここで何が起こっているのか分かりますか??
r - matplotlib または R でライン プロットを再現する
長年にわたる(科学)著者の共同作業をまとめた素晴らしい図に出会いました。下に図を貼り付けます。
各垂直線は、単一の著者を指します。各縦線の始点は、該当する著者が最初の共同研究者を迎えた年 (つまり、彼女が活発になり、共同研究ネットワークの一部となった年) に対応しています。著者は、昨年 (つまり 2010 年) の共同研究者の総数に従ってランク付けされます。カラーリングは、著者ごとの共同研究者数の経年変化 (活動開始から 2010 年まで) を示しています。
同様のデータセットがあります。著者の代わりに、データセットにキーワードがあります。各数値は、特定の年の用語の頻度を示します。データは次のようになります。
たとえば、Term2
1967 年に頻度 1 でTerm4
最初に発生し、1966 年に頻度 4 で最初に発生します。完全なデータセットは、ここで入手できます。