how to assign a unique identifier to multiple data frame entries
plyr, r, reshape
Solution
This should work quite nicely. (It takes advantage of the fact that unique levels of a factor are each actually stored as integers, and uses `as.numeric()` to access/extract those integer values).
df$unique_id <-
as.numeric(as.factor(with(df, paste(year, country, site, sep="_"))))
df
# year country site unique_id
# 1 1999 K di 1
# 2 1999 K se 2
# 3 2000 M di 3
# 4 2000 M di 3
# 5 2000 S di 4
Problem
I have a large data frame that has three identifiers. For example: ``` df <- data.frame(year=c(1999,1999,2000,2000,2000), country=c('K','K','M','M','S'), site=c('di','se','di','di','di')) ``` Which will produce a data frame like this: ``` year country site 1999 K di 1999 K se 2000 M di 2000 M di 2000 S di ``` I want to add an additional column to the data frame and have a 'unique id' assigned by using the entries for 'year', 'country', and 'site'. It would look something like this: ``` year country site unique_id 1999 K di 1 1999 K se 2 2000 M di 3 2000 M di 3 2000 S di 4 ``` Any suggestions on how to do this would be greatly appreciated. I'm thinking it could somehow be done using the plyr package?