[R] how to skip last lines while reading the data in R

Romain Francois rfrancois at mango-solutions.com
Mon Jan 28 16:57:58 CET 2008


Hi,

What about this :

data <- read.table( pipe('head -n-2 data.txt') )

However, the aesthetics will only appeal to people having head (maybe it 
needs to be a recent version as well ...).

Cheers,

Romain

Barry Rowlingson wrote:
> Henrique Dallazuanna wrote:
>   
>> Perhaps:
>>
>> data <- read.table(textConnection(rev(rev(readLines('data.txt'))[-(1:2)])))
>>
>>     
>
>   Euurgh! Am I the only one whose sense of aesthetics is enraged by 
> this? To get rid of the last two items you reverse the vector, remove 
> the first two items, then reverse the vector again?
>
>   One liners are fine for R Golf games, but in the real world, I'd get 
> the length of the vector and cut directly off the end. Consider these:
>
> # reverse/trim/reverse:
> rev1 <- function(x,n=100,m=5){
>    for(i in 1:n){
>      y=rev(rev(x)[-(1:m)])
>    }
>    return(y)
> }
>
> # get length, trim
> rev2 <- function(x,n=100,m=5){
>    for(i in 1:n){
>      y=x[1:(length(x)-m)]
>    }
>    return(y)
> }
>
>   > system.time(rev1(1:1000,10000,5))
>   [1] 1.864 0.008 2.044 0.000 0.000
>   > system.time(rev2(1:1000,10000,5))
>   [1] 0.384 0.008 0.421 0.000 0.000
>
>
>   Result: faster, more directly readable code.
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
>   


-- 
Mango Solutions
data analysis that delivers

Tel:  +44(0) 1249 467 467
Fax:  +44(0) 1249 467 468
Mob:  +44(0) 7813 526 123



More information about the R-help mailing list