2013-07-12 21 views
-1

我有一個大的列表格式 Variable = Value。 99%的列表是這種格式。但是,很少有條目需要在值部分中包含a =。因此,他們看起來像變量=值=東西R Read.table:sep發生超過1次

所以我的功能函數read.table拋出一個錯誤:

Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, : 
    line 2 did not have 2 elements 

是否有辦法避免這種情況,而無需改變原有的文件? 這是我讀出表的命令:

VarNamesDescription<-read.table(paste(FilePathVariableDescription), sep="=", skip=0, header=FALSE,stringsAsFactors=FALSE) 

編輯: 一個細胞=

AABB NA=HOLDING NV 

兩個小區=

AA=ETX Sml = PrM013) 
+0

我認爲我們至少需要查看您正在嘗試閱讀的部分文件。 –

+0

請給我們一個三行示例文件,以及預期的輸出。 – flodel

+0

請參閱編輯:)謝謝 – MichiZH

回答

2

如果你知道你將有一個最大3 =排隊,您可以強制read.table分配一個額外的列與colClassesfill

txt <- "a=2 
b=3 
c=4 
d=5=6 
e=7" 
read.table(text=txt, sep="=", header=FALSE, 
    colClasses=c("character","character","character"), # create a 3rd column 
    fill=TRUE # don't fail because data for last column doesn't exist 
    ) 

    V1 V2 V3 
1 a 2 
2 b 3 
3 c 4 
4 d 5 6 
5 e 7 
+0

VarNamesDescription <-read.table(FilePathVariableDescription,sep =「=」,skip = 0,colClasses = c(「character」,「character」,「character」),header = FALSE,fill = TRUE,stringsAsFactors = FALSE) 警告消息: 在read.table(FilePathVariableDescription,sep =「=」,skip = 0,: cols = 2!= length(data)= 3 – MichiZH

+0

瞭解它的工作原理:VarNamesDescription <-read.table(FilePathVariableDescription,sep =「=」,skip = 0,col.names = c(「a」,「b」,「c」),header = FALSE,fill = TRUE,stringsAsFactors = FALSE)。多謝! – MichiZH