2017-09-01 82 views
0

我工作的一个预测模型,需要从如下图所示的训练数据,并使用代码测试数据匹配每个变量的水平等级:匹配的变量来自两个数据集

levels(test$MSSubClass) <- levels(train$MSSubClass) 

有87总共变量。而不是一个接一个地去做。我正在寻找一种方法来一次完成匹配。目前,我的代码是这样的:

levels(test$MSSubClass) <- levels(train$MSSubClass) 
levels(test$MSZoning) <- levels(train$MSZoning) 
levels(test$LotFrontage) <- levels(train$LotFrontage) 
levels(test$LotArea) <- levels(train$LotArea) 
levels(test$Street) <- levels(train$Street) 
.... 
+1

FACT =其中(sapply(火车,类)== “因素” ); (i,FACT){levels(test [,i])< - levels(train [,i])}的 } – G5W

回答

0

如果test水平是水平的train一个子集:

# Get the column names that are factors 
factor_names <- names(train)[sapply(train, class) == "factor"] 

# Set the factor levels in test to be same as train 
for (name in factor_names) {levels(test[,name]) <- levels(train[,name])} 
相关问题