【发布时间】:2014-03-19 21:55:38
【问题描述】:
Gidday,
我正在寻找一种方法来随机拆分数据框(例如 90/10 拆分),以测试和训练保持特定分组标准的模型。
想象一下我有一个这样的数据框:
> test[1:20,]
companycode year expenses
1 C1 1 8.47720
2 C1 2 8.45250
3 C1 3 8.46280
4 C2 1 14828.90603
5 C3 1 665.21565
6 C3 2 290.66596
7 C3 3 865.56265
8 C3 4 6785.03586
9 C3 5 312.02617
10 C3 6 760.48740
11 C3 7 1155.76758
12 C4 1 4565.78313
13 C4 2 3340.36540
14 C4 3 2656.73030
15 C4 4 1079.46098
16 C5 1 60.57039
17 C6 1 6282.48118
18 C6 2 7419.32720
19 C7 1 644.90571
20 C8 1 58332.34945
我要做的是使用定义的拆分标准将此数据框拆分为训练集和测试集。使用提供的数据,我想以一种公司不会在两个数据框架中混淆的方式拆分数据。数据集 1 包含与数据集 2 不同的公司。
想象一个 90/10 的分割,理想的分割应该是这样的:
> data_90split
companycode year expenses
4 C2 1 14828.90603
12 C4 1 4565.78313
13 C4 2 3340.36540
14 C4 3 2656.73030
15 C4 4 1079.46098
16 C5 1 60.57039
5 C3 1 665.21565
6 C3 2 290.66596
7 C3 3 865.56265
8 C3 4 6785.03586
9 C3 5 312.02617
10 C3 6 760.48740
11 C3 7 1155.76758
17 C6 1 6282.48118
18 C6 2 7419.32720
1 C1 1 8.47720
2 C1 2 8.45250
3 C1 3 8.46280
> data_10split
companycode year expenses
20 C8 1 58332.34945
19 C7 1 644.90571
我希望我清楚地指出我在寻找什么。 感谢您的反馈意见。
【问题讨论】:
-
通过“条件是我想保留 $companycode 和 $year 的数据分组标准”,您的意思是要在两个拆分中保留整个数据框吗?或者你想限制哪些行可以进入 90 行,哪些行可以进入 10 行?
-
你能澄清一下吗
want to keep the data grouping criterias for $companycode and $year.? -
@BrodieG 我的意思是确实设置了一个约束。应该按照每个公司的行顺序拆分,然后按公司随机拆分。
-
我仍然很难理解约束。
-
@BrodieG 我分享了这段艰难的时光..
标签: r split dataframe random-sample