作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含英超足球运动员姓名的数据库,我正在将其读入 R (3.02),但是当涉及到姓名中带有外国字符(变音、重音等)的球员时,我遇到了困难。下面的代码说明了这一点:
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
最佳答案
编辑 :您提供的文件使用的编码似乎与您系统的 native 编码不同。
由 stri_enc_detect
完成的(实验性)编码检测来自 stringi 的函数包给出:
library('stringi')
PlayerDataRaw <- stri_read_raw('~/Desktop/PLAYERS.csv')
stri_enc_detect(PlayerDataRaw)
## [[1]]
## [[1]]$Encoding
## [1] "ISO-8859-1" "ISO-8859-2" "ISO-8859-9" "IBM424_rtl"
##
## [[1]]$Language
## [1] "en" "ro" "tr" "he"
##
## [[1]]$Confidence
## [1] 0.25 0.14 0.09 0.02
ISO-8859-1
又名
latin1
.幸运的是,R 在读取此文件时不必重新编码输入——它可能只是设置了与默认(== native )不同的编码标记。您可以使用以下命令加载文件:
PlayerData<-read.table('~/Desktop/PLAYERS.csv',
quote=NULL, dec = ".", sep=",",
stringsAsFactors=FALSE, header=TRUE, fill=TRUE,
blank.lines.skip=TRUE, encoding='latin1')
stri_sub
功能:
Test<-PlayerData[c(33655:33656),]
Test
## T Away H.A Home Player Year
## 33655 33654 CrystalPalace 1 Arsenal Cazorla 2013
## 33656 33655 CrystalPalace 1 Arsenal Özil 2013
stri_sub(Test$Player, 1, length=1)
## [1] "C" "Ö"
stri_sub(Test$Player, 2, length=1)
## [1] "a" "z"
stri_cmp_eq("Özil", "Ozil", stri_opts_collator(strength=1))
## [1] TRUE
iconv
去除重音字符。的音译器(不过我不确定它是否在 Windows 上可用)。
iconv(Test$Player, 'latin1', 'ASCII//TRANSLIT')
## [1] "Cazorla" "Ozil"
stri_trans_general(Test$Player, 'Latin-ASCII')
## [1] "Cazorla" "Ozil"
关于string - 读外国文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23152861/
我有一个问题,我只是不知道如何解决。我想在 JAVA 中建模一个结构,例如:公司、 Activity 和地点。 每个公司都包含一个或多个位置,代表该公司的分支机构所在的位置 每个事件还有一个事件发生的
我是一名优秀的程序员,十分优秀!