如何修改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
相关产品推荐
相关产品推荐

