当前位置: 首页 > 面试题库 >

读取具有不同编码的Rdata文件

吴建中
2023-03-14
问题内容

我在Linux(UTF-8)计算机上有一个要读取的.RData文件,但我知道该文件位于Latin1中,因为我是在Windows上自己创建的。不幸的是,我无权访问原始文件或Windows计算机,并且需要在Linux计算机上读取这些文件。

要读取Rdata文件,通常的过程是运行load("file.Rdata")。诸如此类的函数read.csv具有encoding可用于解决此类问题的参数,但load没有这种功能。如果尝试load("file.Rdata", encoding = latin1),我只会收到此(预期)错误:

加载错误(“ file.Rdata”,编码=“ latin1”):未使用的参数(编码=“ latin1”)

我还可以做些什么?我的文件加载了带有重音的文本变量,这些重音在UTF-8环境中打开时会损坏。


问题答案:

感谢42的评论,我设法编写了一个函数来重新编码文件:

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

这里的内容是命令Encoding(df[, col]) <- "latin1",该命令获取col数据帧的列df并将其转换为latin1格式。不幸的是,Encoding仅将列对象作为输入,因此我不得不创建一个函数来清除数据框对象的所有列并应用转换。

当然,如果您的问题仅存在于两列中,则最好将Encoding应用于这些列而不是整个数据框(您可以修改上面的函数以将一组列作为输入)。另外,如果您遇到相反的问题,即将在Linux或Mac
OS中创建的R对象读入Windows,则应使用originalEncoding = "UTF-8"



 类似资料:
  • 问题内容: 我试图根据此方法的输出以UTF-8或Windows-1252格式读取文件: 到目前为止,我有: 我遇到的问题是将实例转换为。 此外: 文件本身的名称()不能被认为是特定的; 有时文件名将包含UTF-8字符,有时还包含Windows-1252。文件的内容也是如此(但是,如果文件名和文件内容 始终 具有匹配的字符集)。 只有内部的逻辑可以选择要应用的字符集,因此 在 调用此方法 之前 尝试

  • 我在获取引用光标时遇到问题。 假设我有引用游标的变量,“c_cursor SYS_REFCURSOR”,并且参考游标将具有具有以下列的行 列A|列B|列C 我有这个行类型变量“r_table TestTable%rowtype” 这个行类型有列A,列B和列C,其中包含额外的列。所以它就像这个 列A|列B|列C|列D|列E|列F 因此,我要做的是创建一行,其中列a、B和C从游标值中提取,其余列给出一

  • 问题内容: 如果类路径中有两个JAR文件,两个文件的根中都包含一个名为“ config.properties”的资源。有没有办法检索类似于的 两个 文件?顺序不相关。 一种替代方法是,如果可能的话,在类路径中加载与某些条件匹配的每个属性文件。 问题答案: 您需要 (或静态版本)。 但是不幸的是,资源不在“目录”中存在一个已知问题。例如,可以,但是可能是一个问题。在Spring Reference中

  • 问题内容: 目前,我正在尝试以mime格式读取文件,该文件具有png的一些二进制字符串数据。 在Windows中,读取文件会为我提供正确的二进制字符串,这意味着我只需将字符串复制过来并将扩展名更改为png即可看到图片。 在Windows中读取文件后的示例如下: 等…等… 在Linux中读取文件后的示例如下: 等…等… 我无法将Linux版本转换为图片,因为这一切都变成了一些带有许多颠倒的“?”的时

  • 问题内容: 似乎有很多,很多方法的Java(阅读文本文件,等等),我个人最喜欢的是用在构造函数(它只是简单地使用mathy数据处理更好的作品,并有熟悉的语法)。 蜘蛛鲍里斯(Boris)也提到和。 有人可以解释每种方法的利弊吗?具体来说,我什么时候要使用它们? (编辑)我想我应该具体一点,并补充说我对这种方法有很强的偏好。所以真正的问题是,当 不会 想使用它? 问题答案: 让我们从头开始。问题是你

  • 本文向大家介绍Python中使用不同编码读写txt文件详解,包括了Python中使用不同编码读写txt文件详解的使用技巧和注意事项,需要的朋友参考一下 将执行文件的当前目录及文件名写入到name.txt文件中,以utf-8格式保存 如果采用ANSI编码保存,用如下代码写入即可: 打开文件并写入 引用codecs模块,对该模块目前不了解。在此记录下方法,有空掌握该模块功能及用法。 读取ANSI编码的