我试图将1992年之前发布的电影与包含大数据集的发行年份的第3列分开。命令中的错误是什么?
> Movies0<-Movies[Movies[,3]<1992,]
Warning message:
In Ops.factor(Movies[, 3], 1992) : < not meaningful for factors
>
答案 0 :(得分:2)
您的Movies
对象的第3列可能是factor
变量,但它可能显示为numeric
/ integer
,并且警告表明,<
运算符未定义factor
。
例如,
Df <- data.frame(
NumericColumn = 1:10,
FactorColumn = as.factor(1:10)
)
##
R> Df[Df[,2] < 5,]
#NumericColumn FactorColumn
#NA NA <NA>
#NA.1 NA <NA>
#NA.2 NA <NA>
# ...
#Warning message:
#In Ops.factor(Df[, 2], 5) : ‘<’ not meaningful for factors
##
R> Df[Df[,1] < 5,] # okay
##
R> Df[as.numeric(as.character(Df[,2])) < 5,] # okay
查看源代码,
R> Ops.factor
#function (e1, e2)
#{
# ok <- switch(.Generic, `==` = , `!=` = TRUE, FALSE)
# if (!ok) {
# warning(gettextf("%s not meaningful for factors", sQuote(.Generic)))
# return(rep.int(NA, max(length(e1), if (!missing(e2)) length(e2))))
# }
# ...
您可以看到哪些运算符可以与factor
一起使用,而<
不是其中之一。