2012-08-04 39 views
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)] 

有另一種方式來直接當做到這一點在讀取文件?

+0

我認爲它很好,但只是'data = data [1:(nrow(data)-1),]'就足夠了 – 2012-08-04 01:19:57

+0

或data [-nrow(data),] – mdsumner 2012-08-04 01:31:57

回答

3

有些更緊湊是:

data=data[ -nrow(data), ] 

你可能想改變你的輸入命令來讀取:

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

...因爲對於頭的默認值是FALSE。

+0

Typo:TREU => TRUE – seancarmody 2012-08-04 01:29:02

+0

使用'data = read.csv('test',sep ='|')',因爲默認情況下它有'header = TRUE'。 – seancarmody 2012-08-04 01:32:05

+1

甚至是'head(data,-1)' - 儘管我覺得這很不明顯。 ATREU! – 2012-08-04 01:32:23

6

?read.table顯示:

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

所以,如果你在閱讀它之前知道的行數,你可以使用它。

+3

我通常用readLines()來計算行數,這有助於我指定read.table的各種參數。 – 2012-08-04 01:38:23

相關問題