这个是一个复杂的问题。但是本文只是给出一点点小经验。
假设我们有一个大文件需要读入R,但是我们不太确定文件是什么样子的,或者说,我们很确定文件是什么样子的,但是我们只想读入其中某些列,应该怎么办呢?
如果你的足够的内存和耐心,你可以按常规:
data <- read.table("datatable.txt")
head(data)
如果你在列表表头时发现数据并不是你想象的格式,这无疑是让人很难受的一件事情。那如何避免错误地读入数据呢?
tab5rows <- read.table("datatable.txt", nrows = 5); tab5rows
classes <- sapply(tab5rows, class) #在查看文件头几行读入正确后再整体读入所有数据
data <- read.table("datatable.txt", colClasses = classes)
上面的代码让我们可以在很少的时间内对读入的数据进行一个检查,如果认为没有问题,就可以读入整个数据了。
如果我们看了文件头之后,决定只读入其中的几列,应该怎么办呢?
tab5rows <- read.table("datatable.txt", nrows = 5); tab5rows
classes <- sapply(tab5rows, class) #假设我们只想读入第一和第三列
classes[c(-1,-3)] <- rep("NULL", length(classes)-2)
data <- read.table("datatable.txt", colClasses = classes)