在R中编码特殊字符

问题描述 投票:0回答:1

我的数据集包含很多姓。这些姓氏用变音符号以及其他特殊字符(例如č,á,ñ等)书写。

[通过以以下方式读取数据(使用encoding =“ latin1”),我设法以适当的方式显示了变音符号:

read_data <- function(directory,debug=FALSE){
  file_list = list.files(path = directory,
                       pattern = "*.csv",
                       full.names = TRUE);

  df_read = data.frame();

  for (filename in file_list){
    df_temp = read_delim(filename,
                      delim=';',
                      locale = locale(encoding = "latin1"));

    if(debug){
      print(paste0(c(filename, " : ", dim(df_temp))));  
    }

    df_read = rbind(df_read, df_temp);

  }

  names(df_read) = make.names(names(df_read))

  return(df_read)
}

不幸的是,我无法以适当的方式显示其他特殊字符。是否可以使用其他编码方式或以其他方式读取csv文件(包括所有特殊字符)?

r encoding read.csv
1个回答
0
投票

同时,我尝试了许多不同的方法来解决编码问题。到目前为止,我能得到的最好的结果是使用以下读取功能:

read_data <- function(directory,debug=FALSE){
  file_list = list.files(path = directory,
                       pattern = "*.csv",
                       full.names = TRUE);

  df_read = data.frame();

  for (filename in file_list){
    df_temp = read.csv(filename,encoding="UTF-16LE", sep=";", header=TRUE);

    if(debug){
      print(paste0(c(filename, " : ", dim(df_temp))));  
    }

    df_read = rbind(df_read, df_temp);

  }

  names(df_read) = make.names(names(df_read))

  return(df_read)
}

[仍然有一个特殊字符显示为“?”,但其余问题可以通过使用“ read.csv”代替“ read_delim”并使用编码“ UTF-16LE”来解决]]

© www.soinside.com 2019 - 2024. All rights reserved.