R select.list()的问题

R select.list()的问题,r,tcltk,R,Tcltk,我试图生成一个对话框,用户可以在其中选择要保留的元素,但是我想保留的项目是一个字符,但看起来R根据字母顺序为它们提供数值。下面是一个示例(我希望对话框中的列表为1:Red、2:Yellow、3:Blue,而不是2、3、1): 库(dplyr) 图书馆(tcltk) 图书馆(utils) x我们可以创建data.frame作为 df <- data.frame(x, y, c, stringsAsFactors = FALSE) 注:stringsafactors不等于stringsaf

我试图生成一个对话框,用户可以在其中选择要保留的元素,但是我想保留的项目是一个字符,但看起来R根据字母顺序为它们提供数值。下面是一个示例(我希望对话框中的列表为1:Red、2:Yellow、3:Blue,而不是2、3、1):

库(dplyr)
图书馆(tcltk)
图书馆(utils)

x我们可以创建
data.frame
作为

df <- data.frame(x, y, c, stringsAsFactors = FALSE)

注:
stringsafactors
不等于
stringsafactors
。因此,
字符
列保持为
因子

str(as.data.frame(cbind(x,y,c),stringsasfactors=FALSE) )
# 'data.frame': 3 obs. of  3 variables:
#$ x: Factor w/ 3 levels "1","2","5": 1 2 3
#$ y: Factor w/ 3 levels "2.2","7","8": 2 1 3
#$ c: Factor w/ 3 levels "blue","red","yellow": 2 3 1
另外,
as.data.frame(cbind
,将有不必要的问题,因为
cbind
返回一个
矩阵
,而
矩阵
只能有一个
,即所有列都转换为
字符
类,因为'c'中的值是
字符
。当我们使用
as.data.frame
字符串一起使用时rs=FALSE
,它确实创建了
字符
类,但
数值列应保持数值

selected_df
#  x y   c
#1 1 7 red
str(as.data.frame(cbind(x,y,c),stringsasfactors=FALSE) )
# 'data.frame': 3 obs. of  3 variables:
#$ x: Factor w/ 3 levels "1","2","5": 1 2 3
#$ y: Factor w/ 3 levels "2.2","7","8": 2 1 3
#$ c: Factor w/ 3 levels "blue","red","yellow": 2 3 1