?merge > df1 V1 V2 1 Populus tremula 1 2 Populus tremula 2 3 Populus tremula 3 4 Calluna vulgaris 1 5 Calluna vulgaris 2 6 Betula alba 1 7 Betula alba 2 8 Betula alba 3 9 Primula veris 1 10 Primula veris 2 > df2 <- read.table('clipboard', sep=',') > df2 V1 V2 1 Populus tremula tree 2 Acer platanoides tree 3 Ribes rubrum shrub 4 Calluna vulgaris dwarf_shrub 5 Betula alba tree 6 Primula veris herb > merge(df1, df2, by = "V1") V1 V2.x V2.y 1 Betula alba 1 tree 2 Betula alba 2 tree 3 Betula alba 3 tree 4 Calluna vulgaris 1 dwarf_shrub 5 Calluna vulgaris 2 dwarf_shrub 6 Populus tremula 1 tree 7 Populus tremula 2 tree 8 Populus tremula 3 tree 9 Primula veris 1 herb 10 Primula veris 2 herb >
On Tue, Nov 9, 2010 at 7:28 AM, fugelpitch <jo...@runtimerecords.net> wrote: > > If I have a data frame where a species occupies several rows with different > phases such as (both col's ar factors): > species,phase > Populus tremula,1 > Populus tremula,2 > Populus tremula,3 > Calluna vulgaris,1 > Calluna vulgaris,2 > Betula alba,1 > Betula alba,2 > Betula alba,3 > Primula veris,1 > Primula veris,2 > > and another df where each species only have one row: > species,growth_form > Populus tremula,tree > Acer platanoides,tree > Ribes rubrum,shrub > Calluna vulgaris,dwarf_shrub > Betula alba,tree > Primula veris,herb > > ...how can I create a new column in the first data frame where growth form > is picked up from the second data frame (also factors) and entered into all > rows for a species as follows: > species,phase,growth_form > Populus tremula,1,tree > Populus tremula,2,tree > Populus tremula,3,tree > Calluna vulgaris,1,dwarf_shrub > Calluna vulgaris,2,dwarf_shrub > Betula alba,1,tree > Betula alba,2,tree > Betula alba,3,tree > Primula veris,1,herb > Primula veris,2,herb > > This will be made for data frames a lot larger than this one so it needs to > be automated in some way. > Also, as you can see the second data frame contains more species than the > first one so I need to pick them out by name not only by row number... > > (I tried something like: > subset(dataframe2.df, > dataframe2.df$species==as.character(unique(dataframe1.df$species))) > in a for loop but I got an error about different factor levels which is > true.) > > > Any help is very appreciated! > > Jonas > -- > View this message in context: > http://r.789695.n4.nabble.com/new-column-from-column-in-another-df-tp3033619p3033619.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help@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. > -- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem that you are trying to solve? ______________________________________________ R-help@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.