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