据我所见,不可能按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上面的输出显示sqldf()将物种解释为一个字符,并按字母顺序排序,而不是按因子排序。
有什么简单而安全的方法可以解决这个问题呢?
发布于 2017-02-22 12:33:01
您可能需要将因子的数值放入数据框架中,然后在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 setosahttps://stackoverflow.com/questions/42391229
复制相似问题