You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改R脚本避免Excel打开CSV时在±前添加¬字符?

解决R生成CSV文件在Excel中±符号前出现¬的问题

这是编码不匹配导致的:R默认以UTF-8编码写入CSV,但Excel打开时会用系统本地编码(如GBK/ANSI)解析,±符号的UTF-8编码被错误识别,就会多出¬字符。以下几种修改R脚本的方法可以解决这个问题:

  • 方法1:写入带BOM的UTF-8文件
    给write.csv添加fileEncoding = "UTF-8-BOM"参数,Excel会识别BOM标记并自动用UTF-8编码打开文件,避免乱码:

    cola <- c("a", "b", "c")
    colb <- c("1", "2 ± 0.2", "3")
    exampledf <- t(as.data.frame(rbind(cola, colb)))
    write.csv(x = exampledf, file = "exampledf.csv", row.names = FALSE, fileEncoding = "UTF-8-BOM")
    
  • 方法2:使用writexl包生成原生Excel文件
    绕开CSV的编码问题,直接生成Excel格式文件,无需担心编码兼容:

    # 首次运行需安装包
    # install.packages("writexl")
    library(writexl)
    
    cola <- c("a", "b", "c")
    colb <- c("1", "2 ± 0.2", "3")
    exampledf <- t(as.data.frame(rbind(cola, colb)))
    write_xlsx(exampledf, path = "exampledf.xlsx")
    
  • 方法3:使用openxlsx包生成Excel文件
    功能更丰富的Excel生成包,同样能彻底解决编码问题:

    # 首次运行需安装包
    # install.packages("openxlsx")
    library(openxlsx)
    
    cola <- c("a", "b", "c")
    colb <- c("1", "2 ± 0.2", "3")
    exampledf <- t(as.data.frame(rbind(cola, colb)))
    write.xlsx(exampledf, file = "exampledf.xlsx", rowNames = FALSE)
    

内容的提问来源于stack exchange,提问作者Mulligan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 01:49:54