R语言rhandsontable下拉列仅首个选项验证通过的问题如何解决?
问题根因
该问题的核心原因是下拉选项源domain_list的属性,和目标数据框my_data_frame中Domain列的属性不匹配,常见不匹配场景如下:
Domain列为因子(factor)类型,domain_list传入的是字符向量,或者domain_list的元素顺序和Domain列的因子level顺序不一致domain_list存在隐式类型差异,比如部分元素为数值、部分为字符,或者存在前后空格、大小写差异
修复方案
按优先级依次尝试以下操作即可:
- 统一两部分的数据类型,推荐统一转为字符型后再初始化表格
示例代码:# 统一转为字符型,同时去重避免重复选项 my_data_frame$Domain <- as.character(my_data_frame$Domain) domain_list <- as.character(unique(domain_list)) # 渲染表格 rhandsontable(my_data_frame,contextMenu=FALSE,stretchH='all',fixedColumnsLeft = 1,fixedRowsTop = 1) %>% hot_col( col = "Domain", type = "dropdown", source = domain_list ) - 如果仍存在验证报错,给
hot_col添加strict = FALSE参数,显式关闭默认严格类型验证:hot_col( col = "Domain", type = "dropdown", source = domain_list, strict = FALSE ) - 如果必须保留
Domain列的因子类型,将domain_list设置为和Domain列完全一致的因子层级即可:domain_list <- levels(my_data_frame$Domain)
内容的提问来源于stack exchange,提问作者Vijai Pandey
相关产品推荐
相关产品推荐

