在R中读取包含西班牙字符(´,ñ)的CSV文件。

9
我正在尝试向R中的数据框添加一列。为了做到这一点,我从Excel导入了一个CSV文件,其中包含id列(与我在数据框中拥有的相同),以及我想要添加到我的数据框中的信息列。
我的问题是,我的CSV文件带有西班牙语字符(´,ñ),当我使用read.csv时(如下例所示)
religion <- read.csv("religion.csv", header = TRUE, sep = ",", dec = ".",
                     filled =TRUE, comment.char = "", strip.white = TRUE,
                     stringsAsFactors = TRUE)

出现问题的字符未显示,而是显示了问号。

我尝试更改编码,使用以下编码:

UTF-8, latin1,

Sys.setlocale("LC_ALL", "ES_ES.UTF-8")

但是没有任何区别。

非常感谢您的帮助。


1
文件使用的编码是什么?你使用的操作系统是什么?提供一个可重现的示例将有助于了解情况。请参考如何创建一个完美的 R 可重现示例 - MrFlick
这个代码 dt<-data.table(a="ñ") 有效吗? - Dean MacGregor
filled 不是 read.csv 的参数,您是否指的是 fill - mpalanco
2个回答

11

在您的read.csv代码中使用encoding选项。

    religion <- read.csv("religion.csv", header = TRUE, sep = ",", dec = ".",
                         filled =TRUE, comment.char = "", strip.white = TRUE,
                         stringsAsFactors = TRUE, encoding="UTF-8")

记住,您可以随时使用help(function)在 R 中查找文档


1
你可以从这个东西扩展出更多的内容:
DF<- data.frame(col1=c(1,2), col2=c("there is an ñ here", "there is an ´ here"))
#   col1    col2
#    1      there is an ñ here
#    2      there is an ´ here

DF$col2 <- chartr("ñ", "n", DF$col2)
DF$col2 <- chartr("´", "'", DF$col2)
DF
#  col1     col2
#   1       there is an n here
#   2       there is an ' here

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接