我在将文本文件读入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导入文件时发现了一个不同的错误
答案 0 :(得分:2)
根据此SO问题,您获得的错误似乎与文件编码有关。
您可能只需要确定要使用的正确文件编码。
示例:
extra<- read.table("extrab.txt", header=T, sep="\t", fileEncoding="latin1")
您可以尝试在记事本/任何文本编辑器中打开文件,然后使用ANSI,Unicode或UTF-8等常用格式“另存为”。
在Windows记事本中,注意SaveAs时会出现“编码”下拉列表。 ANSI应该可以正常工作。
答案 1 :(得分:1)
现在您没有遇到文件编码问题,可能只是您的分隔符实际上不是选项卡。尝试:
extra<- read.table("extrab.txt", header=T, fileEncoding="UCS-2LE")
这将在任何空格上分开