[Rd] subcripts on data frames (PR#9885)

m.crawley at imperial.ac.uk m.crawley at imperial.ac.uk
Tue Aug 28 16:44:25 CEST 2007


I'm not sure if this is a bug, or if I'm doing something wrong.
=20
=46rom the worms dataframe, which is at in a file called worms.txt at
=20
http://www.imperial.ac.uk/bio/research/crawley/therbook
<http://www.imperial.ac.uk/bio/research/mjcraw/therbook/index.htm>=20

=20
the idea is to extract a subset of the rows, sorted in declining order
of worm density, with only the maximum worm density from each vegetation
type:
=20

worms<-read.table("c:\\temp\\worms.txt",header=3DT)
attach(worms)
names(worms)

[1] "Field.Name"   "Area"         "Slope"        "Vegetation"
"Soil.pH"=20=20=20=20=20
[6] "Damp"         "Worm.density"

=20
Usinng "not duplicated" I get two rows for Meadow and none for Scrub
=20
worms[rev(order(Worm.density)),] [!duplicated(Vegetation),]

       Field.Name Area Slope Vegetation Soil.pH  Damp Worm.density
9     The.Orchard  1.9     0    Orchard     5.7 FALSE            9
16   Water.Meadow  3.9     0     Meadow     4.9  TRUE            8
10  Rookery.Slope  1.5     4  Grassland     5.0  TRUE            7
2  Silwood.Bottom  5.1     2     Arable     5.2 FALSE            7
4     Rush.Meadow  2.4     5     Meadow     4.9  TRUE            5

and here is the correct set of rows, but in the wrong order, using
unique
=20
worms[rev(order(Worm.density)),] [unique(Vegetation),]

       Field.Name Area Slope Vegetation Soil.pH  Damp Worm.density
16   Water.Meadow  3.9     0     Meadow     4.9  TRUE            8
9     The.Orchard  1.9     0    Orchard     5.7 FALSE            9
11    Garden.Wood  2.9    10      Scrub     5.2 FALSE            8
2  Silwood.Bottom  5.1     2     Arable     5.2 FALSE            7
10  Rookery.Slope  1.5     4  Grassland     5.0  TRUE            7

=20
Best wishes,
=20
Mick
=20
Prof  M.J. Crawley  FRS
=20
Imperial College London
Silwood Park
Ascot
Berks
SL5 7PY
UK
=20
Phone (0) 207 5942 216
Fax     (0) 207 5942 339
=20

	[[alternative HTML version deleted]]



More information about the R-devel mailing list