闪亮的 selectInput 乱序因子标签在 dropbown bec 字母表中的分类数字范围

shiny selectInput misorder factor labels on categorical number range in dropbown bec alphabetic

新用户。

shiny 应用中 selectInput 的下拉菜单按字母顺序排列分类选项。我将以下代码与提供分类数据的 IPEDS INSTSIZE(机构规模)一起使用。

selectInput("size" , "2. Choose Institution Size:" , as.character(levels(as.factor(ipeds$INSTSIZE))) , selectize=TRUE),

自动按字母顺序排列功能通常适合我的目的,但机构规模的数字范围并没有很好地遵循这种模式。以 5,000 开头的类别应介于 1,000 和 10,000 之间。但是 1,000 和 10,000 中的 1 都会导致字母排序错误。见下图。

如何在 selectInput(或基础数据)中指定我希望在下拉菜单中出现的顺序?

编辑(澄清一下,这可能是 factorlevels 的普遍问题,而不是 shiny::selectInput,但我没有看到任何前 2 个的子选项来控制它。)

顺序由因子变量的顺序决定。使用 mtcars

的示例
x = as.factor(mtcars$cyl)

levels(x)
[1] "4" "6" "8"

x = factor(x,levels(x)[c(3,2,1)])

levels(x)
[1] "8" "6" "4"