[R] Making a group membership matrix
Andy Bunn
abunn at montana.edu
Tue Jul 22 17:41:56 CEST 2003
Hi Helpers:
I have a factor object that has 314k entries of 39 land cover types.
(This object can be coerced to characters neatly should that be easier
to work with.)
> length(foo)
[1] 314482
> foo[1:10]
[1] Montane Chaparral Barren Red Fir Red Fir
[5] Red Fir Red Fir Red Fir Red Fir
[9] Red Fir Red Fir
39 Levels: Alpine-Dwarf Shrub Annual Grassland Aspen Barren ... White
Fir
> summary(foo)
Alpine-Dwarf Shrub Annual Grassland
Aspen
7402 0
582
Barren Bitterbrush Blue
Oak-Foothill Pine
69111 9
0
Blue Oak Woodland Chamise-Redshank Chaparral Closed-Cone
Pine-Cypress
0 0
0
Cropland Desert Scrub
Douglas-Fir
0 0
0
Eastside Pine Freshwater Emergent Wetland
Jeffrey Pine
0 0
11342
Joshua Tree Juniper
Lacustrine
0 1293
501
Lodgepole Pine Low Sage
Mixed Chaparral
60332 31
1043
Montane Chaparral Montane Hardwood Montane
Hardwood-Conifer
6648 326
0
Montane Riparian Orchard and Vineyard
Perennial Grassland
180 0
17
Pinyon-Juniper Ponderosa Pine
Red Fir
968 708
66263
Riverine Sagebrush Sierran
Mixed Conifer
0 2292
14264
Subalpine Conifer Urban
Valley-Foothill Riparian
66237 0
0
Valley Oak Woodland Wet Meadow
White Fir
0 2216
2717
>
I want to make a matrix that has the cover types as columns and
length(foo) rows. I want the matrix entities to be scored one if that
cover type else zero.
foo.mat <- matrix(data = 0, nrow = length(foo),
ncol = nlevels(foo))
colnames(foo.mat) <- levels(foo)
That is easy enough but I'm at a loss as how to populate it properly.
In case I'm not being clear. This is what I want:
> foo[1]
[1] Montane Chaparral
39 Levels: Alpine-Dwarf Shrub Annual Grassland Aspen Barren ... White
Fir
> foo.mat[1,]
Alpine-Dwarf Shrub Annual Grassland
Aspen
0 0
0
Barren Bitterbrush Blue
Oak-Foothill Pine
0 0
0
Blue Oak Woodland Chamise-Redshank Chaparral Closed-Cone
Pine-Cypress
0 0
0
Cropland Desert Scrub
Douglas-Fir
0 0
0
Eastside Pine Freshwater Emergent Wetland
Jeffrey Pine
0 0
0
Joshua Tree Juniper
Lacustrine
0 0
0
Lodgepole Pine Low Sage
Mixed Chaparral
0 0
0
Montane Chaparral Montane Hardwood Montane
Hardwood-Conifer
1 0
0
Montane Riparian Orchard and Vineyard
Perennial Grassland
0 0
0
Pinyon-Juniper Ponderosa Pine
Red Fir
0 0
0
Riverine Sagebrush Sierran
Mixed Conifer
0 0
0
Subalpine Conifer Urban
Valley-Foothill Riparian
0 0
0
Valley Oak Woodland Wet Meadow
White Fir
0 0
0
>
I'm sure that somebody will send me a cryptic oneliner but I have no
idea how to do this.
Thanks in advance, Andy
More information about the R-help
mailing list