相关疑难解决方法(0)

子集化数据帧中的丢弃因子级别

我有一个包含因子的数据框.当我使用factor或另一个索引函数创建此数据框的子集时,会创建一个新的数据框.但是,因子变量保留其所有原始级别 - 即使它们不存在于新数据框中.

这在进行分面绘图或使用依赖于因子水平的函数时会产生麻烦.

在我的新数据框中从一个因子中删除级别的最简洁方法是什么?

这是我的例子:

df <- data.frame(letters=letters[1:5],
                    numbers=seq(1:5))

levels(df$letters)
## [1] "a" "b" "c" "d" "e"

subdf <- subset(df, numbers <= 3)
##   letters numbers
## 1       a       1
## 2       b       2
## 3       c       3    

# all levels are still there!
levels(subdf$letters)
## [1] "a" "b" "c" "d" "e"
Run Code Online (Sandbox Code Playgroud)

r dataframe r-faq r-factor

510
推荐指数
11
解决办法
36万
查看次数

如果测试数据中存在新的因子级别,则R中的随机森林包显示预测期间的错误().有什么办法可以避免这个错误吗?

我的训练数据中有30个因子级别的预测因子.在我的测试数据中,我再次拥有相同预测因子的30个因子水平,但某些水平不同.并且randomForest不会预测除非级别完全相同.它显示错误.说,predict.randomForest(模型,测试)中的错误训练数据中不存在的新因子水平

r random-forest

4
推荐指数
1
解决办法
8683
查看次数

标签 统计

r ×2

dataframe ×1

r-factor ×1

r-faq ×1

random-forest ×1