この投稿(R: How to split a data frame into training, validation, and test sets?)に示されているように、訓練、検証、テストセットにデータセットをランダムに分割する必要がありますが、データフレーム全体ではなく、分割対象IDにランダムにリンクする必要があります。IDに依存するトレーニング、検証、およびテストセットにデータフレームを分割する方法は?
この質問に回答したコードを適用すると、私のデータフレームは完全にランダムに分割されますが、私はIDを積み重ねて一緒にいなければなりません。
ご迷惑をおかけして申し訳ありません。ここに私のデータは、問題を説明するために:
df <- c(Contact.ID, Date.Time, Age, Gender, Attendance)
Contact.ID Date.Time Age Gender Attendance
1 A 2012-07-06 18:54:48 37 Male 30
2 A 2012-07-06 20:50:18 37 Male 30
3 A 2012-08-14 20:18:44 37 Male 30
4 B 2012-03-15 16:58:15 27 Female 40
5 B 2012-04-18 10:57:02 27 Female 40
6 B 2012-04-18 17:31:22 27 Female 40
7 B 2012-04-18 18:37:00 27 Female 40
8 C 2013-10-22 17:46:07 40 Male 5
9 C 2013-10-27 11:21:00 40 Male 5
10 D 2012-07-28 14:48:33 20 Female 12
私はランダムにこのデータを分割した場合は、対象Aのエントリは、例えば、私の検証セットで私のテストセットで2と1を持つことができます。しかし、データフレーム全体をランダムに分割するのではなく、異なるIDをランダムに分割する必要があり、これらをどのように接続するのか分かりません。
ちょっと:) お返事ありがとうございます! 私はあなたのアプローチとそれがどのように機能すべきかを知っていますが、それは自分のデータでは機能しません。私は約13,000のIDを持っていますが、私はあなたのコードを実行すると 'spec 'に従って28万の観測を分割しますが、異なるセットはそれぞれ13,000のIDを持っているので、' spec'に従ってIDを分割しません。どのように私はこれを変更することができますか? – Fee
こんにちは、私はそれを修正したと思います:私は私のIDの要因変数として使用していましたが、私は今数値に変更しようとしたと私はそれが働いたと思う。それが問題になったのは理にかなっていますか? – Fee
@私がここに投稿したコードは、IDフィールドの任意のデータ型に対して機能するはずです。実際のデータを共有すると便利です。あなたのデータのために働くことに問題があるなら 'dput(head(df))'の出力。 – josliber