Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R sqldf中的按因子排序_R_Sqldf - Fatal编程技术网

R 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

就我所见,不可能在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
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”
,在这种情况下,您将返回字符)。