R运行languageEntropy代码出现summarise()列character类型错误如何解决
问题根因
你遇到的报错本质是languageEntropy函数内部计算各语言暴露占比总和时,传入的L1_exposure_proportion到L5_exposure_proportion这几列数据是字符类型,无法执行数值求和运算,不是dplyr包本身的问题。
解决步骤
- 第一步:先确认这几列的字段类型,运行以下代码查看数据结构:
# 查看数据集各列类型和样例值 str(data[,c("L1_exposure_proportion","L2_exposure_proportion","L3_exposure_proportion","L4_exposure_proportion","L5_exposure_proportion")])
如果输出里对应列的类型显示为chr就确认是字符类型问题。
- 第二步:将这些列转换为数值类型,如果你的占比列带
%、逗号等特殊符号,需要先清理再转换,示例代码如下:
# 通用转换逻辑,有特殊符号的话先替换 data <- data %>% mutate(across(c(L1_exposure_proportion,L2_exposure_proportion,L3_exposure_proportion,L4_exposure_proportion,L5_exposure_proportion), # 如果有%就先去掉%再转数值,没有的话直接as.numeric即可 ~ as.numeric(gsub("%","",.))/100)) %>% mutate(Participant.number=as.numeric(Participant.number))%>% na.omit()
- 第三步:转换完成后再重新运行
languageEntropy的计算代码即可。
内容的提问来源于stack exchange,提问作者htkin
相关产品推荐
相关产品推荐

