Read.table()无效多字节字符串错误: Find the strings causing the error

标签 r csv read.table

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

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 时发生错误的行?目前,我不知道在哪里寻找导致问题的字符串。

谢谢!

最佳答案

问题出在包含 ü 字符的列名称之一。在 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)

关于Read.table()无效多字节字符串错误: Find the strings causing the error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35397418/

相关文章:

r - 当 read.table 中的 5 行之后出现不同数量的列时,fill=TRUE 会失败吗?

r - 惯用的矩阵类型转换,比如将整数 (0/1) 矩阵转换为 bool 矩阵

r - 使用(箱线)图函数避免代码重复

python - 需要更有效的方法来解析 Python 中的 csv 文件

C - 我应该如何将文件中的标记解析为结构?

r - read.csv读取特定行

r - 导入数据集时出现问题: `Error in scan(...): line 1 did not have 145 elements`

r - 如何使用值向量(例如 0 :9?)获得 2 x 2 矩阵的所有可能排列

r - R中的条件

python - 如何从 CSV 文件创建不带引号的元组?