使用R中的欧元符号因子水平

时间:2015-11-10 11:23:21

标签: r encoding refactoring special-characters

R版本0.99.473 32位中使用RStudio版本3.2.2用于具有编码UTF-8的Windows 64位系统我试图运行R函数createNumericalValues在下面,它将字符串因子级别(例如收入级别)从dat文件转换为数值(收入整数)并将其保存在datN文件中。 dat文件是使用UTF-8编码预先读取的。

createNumericalValues<- function(dat){
datN=dat
level$X9=factor(levels=c("über 5.000 €", "4.500 bis 5.000 €", "4.000 bis 4.500 €", "3.500 bis 4.000 €", "3.000 bis 3.500 €", "2.500 bis 3.000 €", "2.000  bis 2.500 €", "1.500 bis 2.000 €", "unter 1.500 €"))
for (i in 1:ncol(dat[1:117])){    
if (is.factor(dat[,i])){
if (length(setdiff(levels(dat[,i]),levels(level$X9)))==0){

        labelsVec=c(5500,4750,4250,3750,3250,2750,2250,1750,1000)
        datN[,i]<-   factor(dat[,i], 
                          levels=levels(level$X9),
                          labels=labelsVec)
        datN[,i]<-    as.numeric(levels(datN[,i]))[datN[,i]]
      }}}
return(datN)
}

如果因子字符串包含欧元符号(€),则只有在另一个脚本(例如main.R)中运行函数createNumericalValues时,该列才会被正确重构。如果我自己运行函数createNumericalValues的代码而没有获取它,那么重构工作正常。 这怎么可能?如果我获取函数,我怎样才能确保重构也有效?

0 个答案:

没有答案