Geoff, I'm not exactly sure what you're trying to do, but if you want to match up information in two data frames according to a common column in each (node in map and Bus in period), then the merge() function might do the trick for you. Look at the examples in ?merge
Jean Geoff Leyland <geoff_leyl...@fastmail.fm> wrote on 06/11/2012 09:27:39 PM: > Hi, I'm new here, > > I'd like to map a set of values in a data frame to another set of > values in another frame (think a c++ map<>, a python dict or a hash lookup) > > Specifically, I have a data frame of information about trading > periods in the NZ electricity market. For each period I have > information about each bus (or node) in the network. I'd like add a > "column" to the data frame containing the island that the bus is on. > > I'm afraid my success at searching for an answer is restricted by > not knowing what this operation might be called in R, but I found a > something on stackoverflow [1] and tried the following: > > map <- read.table("../node_islands.csv", header=TRUE, sep=",") > map <- setNames(map$island, map$node) > periods$Island = map[periods$Bus] > > Where after the first line, but before the second and third: > > > map[1:3,] > node island > 1 ABY0111 SI > 2 ABY1101 SI > 3 ADD0111 SI > > and: > > > periods[1:3, c("Date", "Period", "Bus", "Price")] > Date Period Bus Price > 1 2004-01-01 1 ABY0111 31.20 > 2 2004-01-01 1 ADD0111 32.43 > 3 2004-01-01 1 ADD0661 32.38 > > This seems to work (it fooled me for quite a while :-) ), but the > following check: > > for (b in periods$Bus) > { > if (periods[periods$Bus == b, "Island"] != map[b]) > { > print(b) > print(periods[periods$Bus == b, "Island"][1:1]) > print(map[b]) > } > } > > prints a number of lines where periods$Island does not match the > corresponding value in map: > > [1] "ALB0331" > [1] SI > Levels: NI SI > ALB0331 > NI > Levels: NI SI > [1] "APS0111" > [1] NI > ... > > Clearly, I've missed the point here. Would anyone be so kind as > help me find it or suggest which FM I might need to R? > > Cheers, > Geoff > > [1] http://stackoverflow.com/questions/7547597/dictionary-style- > replace-multiple-items-in-r [[alternative HTML version deleted]] ______________________________________________ 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.