2016-02-14 61 views
3

我知道有關於read.table()問題的許多類似問題。不過,我更不知道如何導入下面的數據表爲R,它由交易宇宙的不同資產,它們的描述和組:Read.table()無效的多字節字符串錯誤:查找導致錯誤的字符串

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時發生錯誤?目前,我不知道在哪裏尋找導致問題的字符串。

謝謝!

+0

如果您將它保存爲.csv,'sep =','',否?或者只是使用'read.csv'? – alistaire

+1

如果你的csv文件有';'作爲分隔符,你應該使用'read.csv2' – Jaap

回答

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)