闪亮的 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(或基础数据)中指定我希望在下拉菜单中出现的顺序?
编辑(澄清一下,这可能是 factor
或 levels
的普遍问题,而不是 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"
新用户。
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(或基础数据)中指定我希望在下拉菜单中出现的顺序?
编辑(澄清一下,这可能是 factor
或 levels
的普遍问题,而不是 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"