R sqldf中的按因子排序
就我所见,不可能在sqldf中按因子排序:R sqldf中的按因子排序,r,sqldf,R,Sqldf,就我所见,不可能在sqldf中按因子排序: levels( iris$Species ) <- c("virginica", "versicolor", "setosa") levels(iris$Species) > sqldf(' select distinct iris.[Species] from iris order by iris.[Species] ' ) Species 1 setosa 2 versicolor 3 virginica l
levels( iris$Species ) <- c("virginica", "versicolor", "setosa")
levels(iris$Species)
> sqldf(' select distinct iris.[Species] from iris order by iris.[Species] ' )
Species
1 setosa
2 versicolor
3 virginica
levels(iris$Species)sqldf('select distinct iris.[Species]from iris order by iris.[Species]”)
种
1刚毛
2花色
3弗吉尼亚州
上面的输出显示sqldf()将物种解释为一个字符,并按字母顺序排序,而不是按因子排序
解决这个问题的简单安全方法是什么 您可能需要将系数的数值放入数据框中,然后在
sqldf
中对其排序:
> iris$fnum = as.numeric(iris$Species)
> sqldf(' select iris.[Species] from iris group by iris.[Species] order by iris.fnum')
Species
1 virginica
2 versicolor
3 setosa
请注意,SQLite没有对应于R的
“factor”
类的类型。它将诸如“character”
之类的列发送到数据库,这样级别信息就会丢失。返回时,如果可行,它会将它们转换回因子(除非您使用method=“raw”
,在这种情况下,您将返回字符)。