[R] Avoiding factors and levels in data frames

Asher Meir asher.meir at gmail.com
Sun Aug 31 11:01:59 CEST 2008


Hello all.

I am an experienced R user, I have used R for many years for a wide
variety of applications. However, I keep on running into one obstacle:
I never want factors or levels in my data frames, but I keep on
getting them. Is there any way to globally turn this whole feature of
data frames off? Using options(stringAsFactors=FALSE) does not seem to
work.
Alternatively, if I have a data frame with levels, can I just get rid
of them in that data frame?

Here is an example: I have a large text file, of which part is in the
fixed-width tabular form I need. I created a widths vector and a
column names vector. I then read the file as follows:

raw1<-read.fwf(fn1,widths=widmax,col.names=headermax,stringsAsFactors=FALSE)

But raw1 still has factors! It is an old class data frame:

> is(raw1)
[1] "data.frame" "oldClass"

And it still has levels:
> raw1[1,1]
[1] Gustav wind
229 Levels: - - - - - - -     - - - - WIN       - - - M ... Z INDICATES C

My question is:
1. Can I get rid of the levels in raw1?
2. Even better -- can I stop it getting read in as a data frame with factors?
3. Even better -- can I just tell R to never use factors in my data frames?

Or any other solution that occurs to people -- maybe this is the wrong
way to go about reading in fixed width data in this kind of file.

I would appreciate any help.

Asher



More information about the R-help mailing list