如何将文本文件读入R

时间:2013-12-18 05:05:40

标签: r text

我在将文本文件读入R时遇到问题。文本文件有8列,标题看起来完全像这样:

ID          1990    1991    1992    1993    1994    1995    1996
A           36.88   45.48   52.46   111.31  138.45  121.09  122.62
B           19.11   27.97   37.14   47.68   60.78   35.84   38.64
C           56.21   74.94   92.3    118.62  138.13  104.65  113.98
D           30.48   51.54   61.57   99.87   80.9    84.97   99.34

当我执行以下操作时,我收到错误

> extra<- read.table("extrab.txt", header=T, sep="\t")
Error in make.names(col.names, unique = TRUE) : 
  invalid multibyte string at '<ff><fe>I'

所以我尝试添加fileEnconding

> extra<- read.table("extrab.txt", header=T, sep="\t", fileEncoding="UCS-2LE")

这很有效,但我最终得到了一个带有一个变量的数据框,其中ID到1996被视为一列。有没有办法解决这个问题?

我在这个问题上添加了几行,因为当我尝试通过R导入文件时发现了一个不同的错误 error text file import

2 个答案:

答案 0 :(得分:2)

根据此SO问题,您获得的错误似乎与文件编码有关。

选项1:

您可能只需要确定要使用的正确文件编码。

示例:

extra<- read.table("extrab.txt", header=T, sep="\t", fileEncoding="latin1")

选项2:

您可以尝试在记事本/任何文本编辑器中打开文件,然后使用ANSI,Unicode或UTF-8等常用格式“另存为”。

在Windows记事本中,注意SaveAs时会出现“编码”下拉列表。 ANSI应该可以正常工作。

答案 1 :(得分:1)

现在您没有遇到文件编码问题,可能只是您的分隔符实际上不是选项卡。尝试:

extra<- read.table("extrab.txt", header=T, fileEncoding="UCS-2LE")

这将在任何空格上分开