-1

我有一个格式变量 = 值的大列表。99% 的列表都是这种格式。但是,很少有条目需要在值部分中有 =。所以它们看起来像变量 = 值 = 某物

所以我的 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)
4

1 回答 1

2

如果您知道一行中最多有 3个,您可以使用and=强制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   
于 2013-07-12T10:28:41.190 回答