r - R:使用 model$xlevels 对数据进行子集化以获取训练数据
问题描述
考虑 mtcars 示例:
model <- fit3 <- lm(mpg ~ factor(am)+wt+qsec+hp+drat, data = mtcars)
当你这样做
model$xlevels
我们得到了用于建模的变量的水平。
如果我想使用这些级别详细信息对我的数据进行子集化以返回到训练数据级别,假设新数据具有比以前用于建模的更多级别。我怎么能那样做?
目的是避免新数据中有新因素的错误。
我的预期解决方案是:
td <- train_data
dim(td)
for(i in 1:length(model$xlevels)){
print(i)
mod.seg <- as.data.frame(model$xlevels[i])
j = colnames(mod.seg)
attributes <- paste0("subset(td, ",j," %in% unique(mod.seg$",j,"))")
td <- unique(eval(parse(text=attributes)))
}
dim(td)
解决方案
td <- train_data
dim(td)
for(i in 1:length(model$xlevels)){
print(i)
mod.seg <- as.data.frame(model$xlevels[i])
j = colnames(mod.seg)
attributes <- paste0("subset(td, ",j," %in% unique(mod.seg$",j,"))")
td <- unique(eval(parse(text=attributes)))
}
dim(td)
推荐阅读
- c# - 使用带有自动映射器 MapFrom 的嵌套属性字符串
- ios - 是否有一个插件/库允许从库和 iCloud 中选择 iOS 文件?
- vim - 如何让 vim 将 $ 视为标识符字符?
- python - 为根记录器配置格式
- r - 使用 for 循环整理工作 R 代码
- arrays - 使用 Array/VLOOKUP 从列表创建总和
- codeigniter - 如何使用 sugacrm restful api 获取下拉列表键值?
- c# - 调用WEB API下载excel文件
- php - 如何在 PHP 中遍历这个键控多维数组?
- laravel-5.7 - 如何使用外键 Laravel 将 100k 条目插入 3 个表