-When we have two data sets and they share certain attributes, we may want to merge them.
-The “merge” function works on data frames
-Use “I” operator to stop R from converting strings to functions
city <-data.frame(city = I(c("Chicago", "Seattle", "New York", "San Francisco", "Los Angeles")),
state = I(c("IL", "WA", "NY", "CA", "CA")),
population = c(2715000, 637535, 8337000, 825863, 3858000),
coastal = c(F, F, T, T, T))
city
weather <- data.frame(city = I(c(
"Chicago",
"Washington",
"Seattle",
"New York",
"Kansas City",
"Atlanta",
"San Francisco",
"Los Angeles"
)),
averagehigh = c(57, 62, 58, 57, 59, 63, 64, 72),
averagelow = c(50, 55, 53, 49, 50, 59, 57, 68),
inchsnow = c(T, T, F, T, T, F, F, F))
Match
match function compares one vector to another vector, returning index numbers for where matches occur
match(city$city, weather$city)
[1] 1 3 4 7 8
weather$city[match(city$city, weather$city)]
[1] "Chicago" "Seattle" "New York" "San Francisco" "Los Angeles"
Extract values by creating a subset
city$city %in% weather$city
[1] TRUE TRUE TRUE TRUE TRUE
This means that each observation in the CITY data set is in the WEATHER data set How can match these matching tags into one data set? ##MERGE
merge(city, weather, by.x="city", by.y="city")
LS0tDQp0aXRsZTogIk1FUkdJTkcgREFUQSINCm91dHB1dDogDQogIGh0bWxfbm90ZWJvb2s6IA0KICAgIGhpZ2hsaWdodDogdGFuZ28NCiAgICB0aGVtZTogc3BhY2VsYWINCi0tLQ0KLVdoZW4gd2UgaGF2ZSB0d28gZGF0YSBzZXRzIGFuZCB0aGV5IHNoYXJlIGNlcnRhaW4gYXR0cmlidXRlcywgd2UgbWF5IHdhbnQgdG8gbWVyZ2UgdGhlbS4gDQoNCi1UaGUgIm1lcmdlIiBmdW5jdGlvbiB3b3JrcyBvbiBkYXRhIGZyYW1lcw0KDQotVXNlICJJIiBvcGVyYXRvciB0byBzdG9wIFIgZnJvbSBjb252ZXJ0aW5nIHN0cmluZ3MgdG8gZnVuY3Rpb25zDQoNCmBgYHtyfQ0KY2l0eSA8LWRhdGEuZnJhbWUoY2l0eSA9IEkoYygiQ2hpY2FnbyIsICJTZWF0dGxlIiwgIk5ldyBZb3JrIiwgIlNhbiBGcmFuY2lzY28iLCAiTG9zIEFuZ2VsZXMiKSksDQogc3RhdGUgPSBJKGMoIklMIiwgIldBIiwgIk5ZIiwgIkNBIiwgIkNBIikpLA0KIHBvcHVsYXRpb24gPSBjKDI3MTUwMDAsIDYzNzUzNSwgODMzNzAwMCwgODI1ODYzLCAzODU4MDAwKSwNCiBjb2FzdGFsID0gYyhGLCBGLCBULCBULCBUKSkNCmNpdHkNCmBgYA0KDQpgYGB7cn0NCndlYXRoZXIgPC0gZGF0YS5mcmFtZShjaXR5ID0gSShjKA0KICAgICAgICJDaGljYWdvIiwNCiAgICAgICAiV2FzaGluZ3RvbiIsDQogICAgICAgIlNlYXR0bGUiLA0KICAgICAgICJOZXcgWW9yayIsDQogICAgICAgIkthbnNhcyBDaXR5IiwNCiAgICAgICAiQXRsYW50YSIsDQogICAgICAgIlNhbiBGcmFuY2lzY28iLA0KICAgICAgICJMb3MgQW5nZWxlcyINCiAgICAgKSksDQogICAgIGF2ZXJhZ2VoaWdoID0gYyg1NywgNjIsIDU4LCA1NywgNTksIDYzLCA2NCwgNzIpLA0KICAgICBhdmVyYWdlbG93ID0gYyg1MCwgNTUsIDUzLCA0OSwgNTAsIDU5LCA1NywgNjgpLA0KICAgICBpbmNoc25vdyA9IGMoVCwgVCwgRiwgVCwgVCwgRiwgRiwgRikpDQpgYGANCg0KYGBge3J9DQp3ZWF0aGVyDQpgYGANCiMjTWF0Y2gNCm1hdGNoIGZ1bmN0aW9uIGNvbXBhcmVzIG9uZSB2ZWN0b3IgdG8gYW5vdGhlciB2ZWN0b3IsIHJldHVybmluZyBpbmRleCBudW1iZXJzIGZvciB3aGVyZSBtYXRjaGVzIG9jY3VyDQpgYGB7cn0NCm1hdGNoKGNpdHkkY2l0eSwgd2VhdGhlciRjaXR5KQ0KYGBgDQpgYGB7cn0NCndlYXRoZXIkY2l0eVttYXRjaChjaXR5JGNpdHksIHdlYXRoZXIkY2l0eSldDQpgYGANCkV4dHJhY3QgdmFsdWVzIGJ5IGNyZWF0aW5nIGEgc3Vic2V0DQpgYGB7cn0NCmNpdHkkY2l0eSAlaW4lIHdlYXRoZXIkY2l0eQ0KYGBgDQpUaGlzIG1lYW5zIHRoYXQgZWFjaCBvYnNlcnZhdGlvbiBpbiB0aGUgQ0lUWSBkYXRhIHNldCBpcyBpbiB0aGUgV0VBVEhFUiBkYXRhIHNldA0KSG93IGNhbiBtYXRjaCB0aGVzZSBtYXRjaGluZyB0YWdzIGludG8gb25lIGRhdGEgc2V0Pw0KIyNNRVJHRQ0KYGBge3J9DQptZXJnZShjaXR5LCB3ZWF0aGVyLCBieS54PSJjaXR5IiwgYnkueT0iY2l0eSIpDQpgYGA=