2011-02-08 82 views
4

我想读取包含2列的文件。R读取包含001000值的列的文件

2 00001 
9 00001 
3 00001 
12 00001 
115 00001 
11 00001 
12 00001 
38 00001 

如果我使用标准read.table,我结束了这样的事情:

V1 V2 
1 2 1 
2 9 1 
3 3 1 
4 12 1 
5 115 1 
6 11 1 

你对我怎么能读取该文件,并保持第2列,因为它是任何想法? 谢谢

回答

2

我是用文件混淆,这就是为什么我问;) 设法找到它:

read.table("file.txt", colClasses=c("character")) 
+3

如果你想让第一个col是数字,那么:read.table(“file.txt”,colClasses = c(“numeric”,“character”)) – 2011-02-08 17:01:54

2

阅读read.table()的文档并了解如何选择列类型。你想要第二列作为字符。

2

看起来好像你可以传递参数as.is来更改read.table是否尝试将字符串解析为值或将它们保留为原始字符串。

as.is read.table的默认行为是将字符变量(未转换为逻辑,数字或复数)转换为因子。变量as.is控制着这个转换。它的值可以是逻辑的向量(如果需要,可以循环使用值),也可以是数字或字符索引的向量,用于指定哪些列不应转换为因子。

注意:要禁止包括数字列在内的所有转换,请设置colClasses =“character”。

http://stuff.mit.edu/afs/sipb/project/r-project/arch/i386_rhel3/lib/R/library/base/html/read.table.html

2

一般来说我倒是与德克的回答去。但是也许有一点点帮助可以帮助那些在这个线程中蹒跚前行的人看起来如何处理不那么常见的数据格式。 也可以看看utils包中的read.fwf。如果你的数据没有分隔符存储,就像在一些旧的数据库中一样,那真的很不错。

这就是说,在你的具体情况下,我可能会用read.table去。