首先是一些示例代码:
Scores = c(5,4,3,2,1)
Breaks = c(0,0.6,0.8,1,1.2,100)
cut(1.19,breaks=Breaks, labels=Scores)
as.numeric(cut(1.19,breaks=Breaks,labels=Scores)
第一个输出正确2,第二个输出错误4.为什么会出现这种差异?我实际上需要一个数值,但是正确的...我该如何正确转换它?
答案 0 :(得分:4)
cut
返回factor
,2是第4个因子等级。如果您希望将级别标签设置为数字,则需要首先将因子转换为字符:
as.numeric(as.character(cut(1.19,breaks=Breaks,labels=Scores)))
[1] 2
答案 1 :(得分:1)
您需要为每个元素获取因子的级别。尝试:
f <- cut(1.19,breaks=Breaks,labels=Scores)
as.numeric( levels(f)[f] )
(虽然詹姆斯的回答也很好,但这可能对你理解这个因素有所帮助)