dput()
大規模なデータベースで再現可能な例を作成するために使用しようとしています。再現可能な例には移動平均が含まれるため、データベースは大規模である必要があります。これを行うために私が見つけた方法にはreproduce
、ここで共有されている関数が含まれますHow to make a great R reprobible example? @リカルド・サポルタ。reproduce
に基づいていますdput()
(コードはこちらhttps://github.com/rsaporta/pubR/blob/gitbranch/reproduce.R)。
library(data.table)
library(devtools)
source_url("https://raw.github.com/rsaporta/pubR/gitbranch/reproduce.R")
data <- read.table("http://pastebin.com/raw/xP1Zd0sC")
setDF(data)
reproduce(data, rows = c(1:100))
そのコードはデータフレームを作成し、その出力をdata
提供します。引数をdput()
使用して、完全なデータフレームを出力します。rows
しかし、そのような出力を使用してデータフレームを再作成すると、失敗します。
dput()
出力を新しいデータフレームに割り当てようとすると、コードが不完全になり、最後に手動で 3 つの括弧を追加する必要があります。その後、次のエラー メッセージが表示されます。
引数なしでのdput()
出力は正常に機能することに注意してください。完全なデータフレームを出力するのではなく、サンプルを出力します。reproduce
rows = c(1:100)
#This works fine
reproduce(data)
この再現可能な例を作成するために、pastebin メソッドを使用したことにも注意してください。そのメソッドは、一部の列の単語間にスペースがあるデータをインポートしようとするたびに失敗するため、私の目的のためにメソッドを置き換えるものではありませんdput()
(日時スタンプのあるデータフレームなど)。
EDIT:さらにトラブルシューティングを行った後、引数が4つ以上の列を含むデータフレームと一緒に使用されているreproduce
場合、上記のように失敗することが発見されました。代替手段を見つける必要があります。rows
誰かがこれをテストすることに興味がある場合は、次のリンクを使用して上記のコードを実行してください。すべて異なる数の列が含まれています。
1) 100x5: http://pastebin.com/raw/xP1Zd0sC
2) 100x4: http://pastebin.com/raw/YZtetfne
3) 100x4: http://pastebin.com/raw/63Ap2bh5
4) 100x3: http://pastebin.com/raw/1vMMcMtx
5) 100x3: http://pastebin.com/raw/ziM1bYQt
6) 100x1: http://pastebin.com/raw/qxtQs5u4