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

3

我知道关于read.table()问题的类似问题有很多。然而,我无法将以下数据表导入R中,该表由不同资产、其描述和组成的交易宇宙组成:

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

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

如何找到读取表格时出现错误的行?目前,我不知道哪些字符串会导致问题。

谢谢!


如果您将其保存为 .csv 文件,则 sep = ',',对吧? 或者直接使用 read.csv - alistaire
1
如果你的csv文件使用;作为分隔符,你应该使用read.csv2 - Jaap
1个回答

2
问题在于您的某个列名包含字符ü。在使用read.csv2时,请使用check.names = FALSE选项:
 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)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接