如何在读取文件时不读取最后一行?

3

这里有一个名为test的简单文件。

Symbol|Security Name|Market Category|Test Issue|Financial Status|Round Lot Size
AAC|Australia Acquisition Corp. - Ordinary Shares|S|N|D|100
AACC|Asset Acceptance Capital Corp. - Common Stock|Q|N|N|100
AACOU|Australia Acquisition Corp. - Unit|S|N|N|100
File Creation Time: 0803201218:04|||||

如果我不需要文件中的最后一行,可以这样做:

data = read.table('test',sep='|')
data = data[1:(nrow(data)-1),1:ncol(data)]

有没有一种直接在读取文件时完成此操作的方法?

我觉得没问题,但只需data = data[1:(nrow(data)-1),]就可以了。 - random_user
2个回答

6

?read.table 显示:

nrows   
integer: the maximum number of rows to read in. Negative and other invalid values are ignored.

所以,如果您在读取之前知道行数,您可以使用该行数。

3
我通常使用readLines()来计算行数,以便在调用read.table时指定不同的参数。 - Roman Luštrik

3

稍微更紧凑的写法如下:

data=data[ -nrow(data), ]

您可能需要更改输入命令为以下内容:

data = read.table('test', header = TRUE, sep = '|')

由于header的默认值为FALSE。


或者使用 data = read.csv('test', sep='|'),因为默认情况下它具有 header=TRUE - seancarmody
1
甚至可以使用head(data,-1),尽管我觉得这相当晦涩。 - Ben Bolker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接