On May 4, 2010, at 11:11 AM, Marshall Feldman wrote:

> Hi,
> 
> I am trying to read a tab-delimited file that has trailing tab delimiters. 
> It's a simple file with two legitimate fields. I'm using the first as 
> row.names, and the second should be the only column in the resulting data 
> frame.
> 
> Initially, R was filling the last column with NA's, but I was able to stop 
> that by setting colClasses=c("character","character",NULL). Still, the data 
> frame is coming in with an extra column, only now its values are set to "".
> 
> Is there any way to skip the trailing delimited field entirely? I've searched 
> for an answer without luck.
> 
>    Thanks.
>    Marsh Feldman


The easiest way to remove a single final column is to post-process the data 
frame that you imported. So if your imported data frame is called 'DF':

  DF.New <- DF[, -ncol(DF)]

See ?ncol and ?Extract

You could also do more complex sub-setting using the ?subset function or 
consider pre-processing the file to be imported with command line tools such as 
cut or awk.

For example, using the 'iris' data set:

> str(iris)
'data.frame':   150 obs. of  5 variables:
 $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
 $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
 $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
 $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
 $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 
1 ...

> str(iris[, -ncol(iris)])
'data.frame':   150 obs. of  4 variables:
 $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
 $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
 $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
 $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...

HTH,

Marc Schwartz

______________________________________________
R-help@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.

Reply via email to