2012-08-08 108 views
0

当我使用read.table获取数据时,有一件奇怪的事情。Read.table无法获取所有数据行

data=read.table('/home/tiger/nasdaqlisted.txt',head=T,sep='|') 
dim(data) 
[1] 750 6 

其实,文件中有2454行,出了什么问题?
http://freeuploadfiles.com/bb3cwypih2d2

+1

这通常是因为特殊字符或诸如此类的东西。源文件中有关行751的任何有趣的事情? – A5C1D2H2I1M1N2O1R2T1 2012-08-08 10:18:36

+0

请将您的文本文件的前几行粘贴到您的问题中,以便我们看到您的数据是什么样子的。 – Andrie 2012-08-08 10:31:45

+0

奇怪的是,'read.delim(“path/to/file”,sep =“|”)'为我读入所有行。你可以尝试一下,让我知道它是否也适用于你? – A5C1D2H2I1M1N2O1R2T1 2012-08-08 10:41:30

回答

3

我认为这个问题来自于一个事实,即一些名字包含引号字符'(在名称,如Angie's List, Inc.)。 read.table对于quote的默认参数是"\"'"它需要更改以使数据正确读取。

read.table("path/to/file", header=TRUE, sep="|", quote="") 

按@mrdwab建议,有"\""默认quote参数将无需任何改变工作read.delim

read.delim("path/to/file", header=TRUE, sep="|") 
+1

那么为什么不直接设置'quote =“”'?我会认为这是最有意义的...... – A5C1D2H2I1M1N2O1R2T1 2012-08-08 10:43:37

+0

当然,我会相应地编辑。 – plannapus 2012-08-08 10:45:21

+0

为什么不加入'read.delim'解释以及'quote'默认值,作为使这个答案更完整的另一种选择。 – A5C1D2H2I1M1N2O1R2T1 2012-08-08 10:50:58