Reading Rdata file with different encoding

后端 未结 4 1079
别跟我提以往
别跟我提以往 2020-12-10 04:50

I have an .RData file to read on my Linux (UTF-8) machine, but I know the file is in Latin1 because I\'ve created them myself on Windows. Unfortunately, I don\'t have access

4条回答
  •  爱一瞬间的悲伤
    2020-12-10 05:27

    Thanks to 42's comment, I've managed to write a function to recode the file:

    fix.encoding <- function(df, originalEncoding = "latin1") {
      numCols <- ncol(df)
      for (col in 1:numCols) Encoding(df[, col]) <- originalEncoding
      return(df)
    }
    

    The meat here is the command Encoding(df[, col]) <- "latin1", which takes column col of dataframe df and converts it to latin1 format. Unfortunately, Encoding only takes column objects as input, so I had to create a function to sweep all columns of a dataframe object and apply the transformation.

    Of course, if your problem is in just a couple of columns, you're better off just applying the Encoding to those columns instead of the whole dataframe (you can modify the function above to take a set of columns as input). Also, if you're facing the inverse problem, i.e. reading an R object created in Linux or Mac OS into Windows, you should use originalEncoding = "UTF-8".

提交回复
热议问题