我有一个包含英超足球运动员姓名的数据库,我正在将其读入R(3.02)中,但是当涉及到名字中带有外国字符(umlauts、accents等)的球员时遇到了困难。下面的代码说明了这一点:
PlayerData<-read.table("C:\\Users\\Documents\\Players.csv",quote=NULL, dec = ".",,sep=",", stringsAsFactors=F,header=T,fill=T,blank.lines.skip = TRUE)
Test<-PlayerData[c(33655:33656),] #names of the players here are "Cazorla" "Özil"
Test[Test$Player=="Cazorla",] #Outputs correct details
Test[Test$Player=="Ozil",] # Can not find data '0 rows> (or 0-length row.names)'
<
#Example of how the foreign character is treated:
substr("Özil",1,1)
[1] "Ã"
substr("Özil",1,2)
[1] "Ö"
substr("Özil",2,2)
[1] "
substr("Özil",2,3)
[1] "z
我尝试了根据这里描述的方法替换字符:R: 替换字符串中的特殊字符,但是由于我的示例中的重音字符似乎被视为两个单独的字符,所以我认为它不起作用。
如果有任何建议或解决方法,我将不胜感激。
该文件可在此处下载:这里。
iconv
可以帮忙。 - Karsten W.Test$Player <- iconv(Test$Player, to='UTF-8')
。看看索引是否按预期工作。如果不强制编码,字符字符串将根据您的系统区域设置进行解释(您提供的示例在我的系统上按预期工作)。 - ilir