[R] Add column to dataframe based on code in other column
MacQueen, Don
macqueen1 at llnl.gov
Fri Aug 9 00:43:16 CEST 2013
Assuming your data frame of users is named 'users',
and using your mapping vectors:
users$regions <- ''
users$regions[ users$State_Code) %in% NorthEast ] <- 'NorthEast'
and repeat for the other regions
Or, if you put your mappings in a data frame then it is
as simple as
merge(yourdataframe, regions)
(assuming the data frame of mappings is named 'regions')
The regions data frame should have two columns and 50 rows
The two columns contain the state codes and their
respective regions.
How you get that data frame of regions could vary;
here's an example using your vectors, but just two
of the regions:
regions <- data.frame(
region= c( rep('NorthEast',length(NorthEast)),
rep('MidWest,length(MidWest))
),
State_Code=c(NorthEast,Midwest)
)
Note that this is untested. For example,
I could easily have mismatched parentheses.
The whole thing could also be done using match(),
without creating the dataframe of regions.
-Don
--
Don MacQueen
Lawrence Livermore National Laboratory
7000 East Ave., L-627
Livermore, CA 94550
925-423-1062
On 8/8/13 2:33 AM, "Dark" <info at software-solutions.nl> wrote:
>Hi all,
>
>I have a dataframe of users which contain US-state codes.
>Now I want to add a column named REGION based on the state code. I have
>already done a mapping:
>
>NorthEast <- c(07, 20, 22, 30, 31, 33, 39, 41, 47)
>MidWest <- c(14, 15, 16, 17, 23, 24, 26, 28, 35, 36, 43, 52)
>South <- c(01, 04, 08, 09, 10, 11, 18, 19, 21, 25, 34, 37, 42, 44, 45, 49,
>51)
>West <- c(02, 03, 05, 06, 12, 13, 27, 29, 32, 38, 46, 50, 53)
>Other <- c(40, 48, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 94,
>98, 99)
>
>So for example:
>Name State_Code
>Tom 20
>Harry 56
>Ben 05
>Sally 04
>
>Should become like:
>So for example:
>Name State_Code REGION
>Tom 20 NorthEast
>Harry 56 Other
>Ben 05 West
>Sally 04 South
>
>Could anyone help me with a clever statement?
>
>
>
>--
>View this message in context:
>http://r.789695.n4.nabble.com/Add-column-to-dataframe-based-on-code-in-oth
>er-column-tp4673335.html
>Sent from the R help mailing list archive at Nabble.com.
>
>______________________________________________
>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.
More information about the R-help
mailing list