##################################################################### # NAME: Chris Bilder # # DATE: 9-8-11 # # Purpose: Additional data management examples # # # # NOTES: # ##################################################################### ##################################################################### # cbind() x<-1:10 y<-c(rep(x = 1, times = 5), rep(x = 6, times = 5)) x y cbind(x, y) data.frame(x, y) class(cbind(x, y)) class(data.frame(x, y)) #Examples of recycling cbind(x, y[-10]) data.frame(x, y[-10]) cbind(x, 1) data.frame(x, 1) ##################################################################### # rbind() rbind(x, y) ##################################################################### # merge() set1<-data.frame(name1 = c("a", "b", "c", "d", "e", "f"), response1 = c(1, 2, 3, 4, 5, 6)) set2<-data.frame(name2 = c("a", "a", "b", "c", "d", "e"), response2 = c(10, 11, 20, 30, 40, 50)) set1 set2 merge(x = set1, y = set2, by.x = "name1", by.y = "name2", all = TRUE) merge(x = set1, y = set2, by.x = "name1", by.y = "name2", all = FALSE) ##################################################################### # rev() x<-1:10 rev(x) ##################################################################### # expand.grid() x<-1:3 y<-c("a", "b") expand.grid(x, y) expand.grid(y, x) ##################################################################### # sort() #Example 1 x<-c("b", "c", 1) x sort(x) class(x) #Example 2 set1<-data.frame(ID = c(3, 2, 1), response = c(10, 20, 15)) set1 sort(set1) #Does not work order(set1$ID) set1[order(set1$ID),] #Example 3 set1<-data.frame(ID = c(2, 2, 1), response1 = c(20, 10, 15), response2 = c(20, 40, 18)) set1 set1[order(set1$ID),] set1[order(set1$ID, set1$response1),] ##################################################################### # reshape() set1<-data.frame(ID.name = c("subject1", "subject2", "subject3"), ID.number = c(1, 2, 3), age = c(19, 16, 21), time1 = c(1, 0 ,0), time2 = c(0, 0, 1)) set1 #Long format set2<-reshape(data = set1, idvar = "ID.name", varying = c("time1", "time2"), v.names = "response", direction = "long", drop = "ID.number") set2 row.names(set2)<-NULL set2 #Back to wide format set3<-reshape(data = set2, timevar = "time", idvar = "ID.name", direction = "wide") set3