0

我有一个文本文件,它是一个 1000 Row * 40001 Column 表。

文件的第一列是一个字符串,其他列是一些float数字,例如:

A 2 3 4.54 .... 11.23
B 6 6 7 ....    23.45

我想将此文件读入一个文件,但read.table对于大文件似乎不是很有效,所以我认为这scan可能是正确的工具?

但是,scan默认情况下只能接受数字作为输入。如果我想要非数字作为输入,我需要更改what参数。但由于有 40000 多列,我无法为每个输入分配输入类型。

有谁知道如何使用它?谢谢!

4

2 回答 2

2

如果使用 colClasses 参数,read.table 函数会变得更加高效:

inp <- read.table(filnam, colClasses= c(NULL, rep("numeric", 40000) )
于 2012-06-11T18:11:10.763 回答
2

您可以使用what参数并指定类型列表(如colClasses)。

Lines <-
"A 2 3 4.54 11.23
B 6 6 7 23.45"
Data <- (scan(textConnection(Lines), what=c(list(NULL), rep(0,4))))
(Data <- do.call(cbind, Data))
#      [,1] [,2] [,3]  [,4]
# [1,]    2    3 4.54 11.23
# [2,]    6    6 7.00 23.45
于 2012-06-11T18:22:19.013 回答