Read.table()无效的多字节字符串错误:找到导致错误的字符串

时间:2016-02-14 20:12:00

标签: r csv read.table

我知道有很多关于read.table()问题的类似问题。但是,我无法将以下数据表导入R,其中包含具有不同资产,其描述和组的交易领域:

https://wikifolio.blob.core.windows.net/prod-documents/Investment_Universe.xlsx

我将文件保存为dat.csv并尝试read.table("dat.csv", header=T, sep=";", stringsAsFactors=F, quote="")使用不同的编码(例如latin1),但我总是得到无效的多字节字符串错误。此外,我试图使用我的文本编辑器找到并替换所有'ä','ö'和'ü'。

如何在将表读入R时发现错误的行?目前,我不知道在哪里寻找导致问题的字符串。

谢谢!

1 个答案:

答案 0 :(得分:2)

问题出在您的一个包含ü字符的列名中。在check.names = FALSE

中使用read.csv2
 dat <- read.csv2("dat.csv", check.names = FALSE)

这将正确读取您的文件:

> head(dat)
          ISIN    WKN SecurityType            Bezeichnung Anlageuniversum (Gruppe)      Anlageuniversum Whitelist f\x81r institutionelle Produkte _ Schweiz
1 AN8068571086 853390        Stock           SCHLUMBERGER            Aktien Europa Aktien Europa Select                                                   X
2 AT000000STR1 A0M23V        Stock                STRABAG            Aktien Europa Aktien Europa Select                                                   X
3 AT00000AMAG3 A1JFYU        Stock AMAG AUSTRIA METALL AG            Aktien Europa Aktien Europa Select                                                   X
4 AT00000ATEC9 A0LFDH        Stock       A-TEC INDUSTRIES            Aktien Europa Aktien Europa Select                                                   X
5 AT00000BENE6 A0LCPZ        Stock                BENE AG            Aktien Europa Aktien Europa Select                                                   X
6 AT00000FACC2 A1147K        Stock                FACC AG            Aktien Europa Aktien Europa Select                                                   X

然后您可以使用例如:

更改列名
names(dat) <- c("ISIN","WKN","SecurityType","Bezeichnung",
                "Anlageuniversum_Gruppe","Anlageuniversum","Whitelist_Schweiz")

另一种可能性是在没有标题的情况下读取您的文件:

dat <- read.csv2("dat.csv", header = FALSE, skip = 1)