为何R语言显示因子水平为"0""1",却输出1、2并以此绘图?
R中0/1数据转因子的异常问题
我仅使用as.factor()和factor()对包含0、1的数据进行因子转换,二者效果一致,但出现了矛盾的现象:
执行以下代码:
data$Class <- as.factor(as.numeric(data$Class)) str(data$Class) data$Class
得到的输出:
Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 2 2 2 ... [1] 0 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
从输出看存在矛盾,我初步认为这是个bug。之后我尝试了两种解决方法:
新建变量重新处理:
data$Class2 <- ifelse(data$Class == '1', 1, 0) data$Class2 <- factor(data$Class2) data$Class2强制指定
factor()的levels和labels参数:factor(data$Class, levels = c("0","1"), labels = c("0","1"))
但所有操作得到的结果完全一致,而且绘图时Class的显示值是1、2(见附图)。
内容的提问来源于stack exchange,提问作者ackf
相关产品推荐
相关产品推荐

