我从一个 data.frame(或 data_frame)开始,其中包含用于分析的因 Y 变量、我的独立 X 变量和一些“Z”变量——我的建模练习不需要的额外列。
我想做的是:
- 创建一个没有 Z 变量的分析数据集;
- 将这个数据集分解成随机的训练和测试集;
- 找到我最好的模特;
- 使用该模型预测训练集和测试集;
- 按行重新组合训练集和测试集;最后
- 按列将这些数据与 Z 变量重新组合。
当然,这是提出问题的最后一步——我如何确保重新组合的训练和测试集中的行与原始数据集中的行匹配?我们可能会尝试使用原始集合中的 row.names 变量,但我同意 Hadley 的观点,即这是一个容易出错的组合(我的话,不是他的)——为什么有一个特殊列的处理方式与所有其他数据列不同?
一种替代方法是创建一个唯一标识每一行的 ID 列,然后在划分训练集和测试集时保留该列(当然,将其从所有建模公式中排除)。这似乎也很笨拙,并且会使我的所有公式更难阅读。
这一定是一个已解决的问题——人们能告诉我他们如何处理这个问题吗?特别是使用 plyr/dplyr/tidyr 包框架?