簡體   English   中英

在 R 中編碼特殊字符

[英]encode special characters in R

我的數據集包含很多姓氏。 這些姓氏用變音符號以及其他特殊字符(如 č、á、ñ 等)書寫。

通過以下列方式讀取數據(使用 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 文件,包括所有特殊字符?

同時,我嘗試了很多不同的方法來解決我的編碼問題。 到目前為止我能得到的最好的方法是使用以下讀入函數:

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”來解決

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM