# # Unit 8 - Data frames # # Replacing values # # Loading data setwd("c:/R") employees <- read.csv("employees.csv") print(employees) # Examine this questions: # Add 1000 to the salaries of all women. # If we need to replace one value # in a data frame employees <- read.csv("employees.csv") print(employees[1,2]) # as usual, first row index, then column index employees[1,2] <- 999 print(employees[1,2]) print(employees) employees[1,c("SALARY")] <- 20000 print(employees[1,c("SALARY")]) print(employees) # Replacing a column employees <- read.csv("employees.csv") employees$ID <- 10:19 print(employees) # Also possible # Note the comma. employees <- read.csv("employees.csv") employees[,c("ID")] <- 15:24 print(employees) # What if we specify a single replacing value? employees <- read.csv("employees.csv") employees$SALARY <- 2000 print(employees) # Replacing a row employees <- read.csv("employees.csv") print(employees) employees[2,] <- c(7777, "Yasmin", "Lee", 2, 15, 1000.72) print(employees) # Keep an eye on # suitable lengths. employees <- read.csv("employees.csv") print(employees) employees[2,] <- 1:3 print(employees) employees <- read.csv("employees.csv") print(employees) employees[2,] <- 1:5 print(employees) # Back to replacing values in columns employees <- read.csv("employees.csv") employees$SALARY <- 20000 print(employees) employees <- read.csv("employees.csv") employees$SALARY <- 5 * 1000 print(employees) employees <- read.csv("employees.csv") print(employees$SALARY) employees$SALARY <- 2 * employees$SALARY print(employees$SALARY) # We can replace values in a column # by condition # Notice: NO SORUPRISE HERE WHATSOEVER! # AND HOW WOULD WE DO THIS USING A FOR LOOP? employees <- read.csv("employees.csv") print(employees) employees$SALARY[employees$EDUC > 15] <- 20000 print(employees) # Also possible # Note the comma. employees <- read.csv("employees.csv") employees[,c("SALARY")][employees$EDUC > 15] <- 20000 print(employees) # Would this work? employees <- read.csv("employees.csv") employees[employees$EDUC > 15,c("SALARY")] <- 20000 print(employees) # Finally let us examine again the # questions which opened this lesson. # Add 1000 to the salaries of all women. employees <- read.csv("employees.csv") print(employees[employees$GENDER == 2, c("SALARY")]) employees[employees$GENDER == 2, c("SALARY")] <- (employees[employees$GENDER == 2, c("SALARY")] + 1000) print(employees[employees$GENDER == 2, c("SALARY")]) # Now examine this code. # Defining these ranges of salaries: # - (0,5000] --- "A" # - (5000,10000] --- "B" # - (10000,15000] --- "C" # - (15000,20000] --- "D" # Add 1000 to all women whose salaries # is in ranges A and D.