How To access a column in R: We have a dataset of a survey containing multiple columns of information. We are interested in the isolating the satisfaction scores of the survey:

So, we need to extract the data from the Satisfaction column:

# Question 1 & 2
# Q1: Mean and Median of Satisfaction Ratings
# Q2: Find the average age of someone working in HR

# Extracts the satisfaction column from our data set creating vector now referred to as "Sat"
Sat<-SatisfactionSurvey$Satisfaction

# Creating a vector containing the ages of those in the HR Department
HR_Ages<- SatisfactionSurvey$Age[SatisfactionSurvey$Department == "HR"]

# Average age of those in the HR department
mean(HR_Ages)
[1] 30
# Calculates the mean and median of the Satisfaction variable
mean(Sat)
[1] 6.75
median(Sat)
[1] 7
# Creates a histogram and boxplot displaying Satisfaction scores
hist(Sat,
     col = rainbow(5),
     border = "grey",
     main = "Satisfaction Distribution",
     xlab = "Satisfaction Score",
  )


boxplot(Sat,
        col = "lightsteelblue3",
        border = "black",
        main = "Boxplot of Satisfaction",
        ylab = "Satisfaction Score")

Converting columns within the data set into matrices:

Determining the average satisfaction rating of each age group.

# Question 3
# Extracts the satisfaction from our data set creating vector now referred to as "Sat"
Sat <- SatisfactionSurvey

# Creates a matrix containing columns Age and Satisfaction scores
Age_Sat_Matrix <- as.matrix(Sat[, c("Age", "Satisfaction")])


Age_Mean_Sat <- tapply(Age_Sat_Matrix[, 2],
                       Age_Sat_Matrix[, 1],
                       mean,na.rm = TRUE)

# Creates data frame using our matrix
Age_Mean_Sat_df <- data.frame(
                   Age = as.numeric(names(Age_Mean_Sat)),
                   "Mean Satisfaction" = as.numeric(Age_Mean_Sat)
)

# Makes a cleaner version of our data
names(Age_Mean_Sat_df) <- c("Age", "Mean Satisfaction")

# Displays data frame
Age_Mean_Sat_df

Creating a matrix sorting named elements and a numberic value:

Determining the average satisfaction score per department:

# Question 4

# Keeps full data set
Sat <- SatisfactionSurvey

# Mean Satisfaction per Department
Department_Mean_Sat <- tapply(Sat$Satisfaction, 
                               Sat$Department,
                               mean,na.rm = TRUE)

# Convert to matrix with departments as columns
Department_Sat_Matrix <- matrix(Department_Mean_Sat,
                                nrow = 1,
                                dimnames = list(NULL, names(Department_Mean_Sat)))

# Transposes matrix into departments as rows
Department_Sat_Matrix_T <- t(Department_Sat_Matrix)

# Rename column name for clarity
colnames(Department_Sat_Matrix_T) <- c("Mean Satisfaction")

# View Matrix
Department_Sat_Matrix_T
          Mean Satisfaction
Finance                 6.4
HR                      7.8
IT                      6.4
Marketing               6.4

Analyzing Data frames:

Summarizing the Gender and Department columns:

Filtering the Data frame to only measure the Satisfaction Scores of those aged 30-40:

# Question 5 & 6

# Keeps full data set
Sat <- SatisfactionSurvey

# Columns and Rows of data set
dim(Sat)
[1] 20  5
nrow(Sat)
[1] 20
ncol(Sat)
[1] 5
# Converting values to factors
Sat$Gender <- as.factor(Sat$Gender)
Sat$Department <- as.factor(Sat$Department)

# Summary of columns
message("Demographics: Gender and Department Demographics")
summary(Sat$Gender)
    Female       Male Non-binary 
         8          8          4 
summary(Sat$Department)
  Finance        HR        IT Marketing 
        5         5         5         5 
# Mean of filtered data
message("Average Satisfaction for individuals aged 30-40")
Filtered_Sat <- Sat[Sat$Age >= 30 & Sat$Age <= 40, ]
mean(Filtered_Sat$Satisfaction, na.rm = TRUE)
[1] 6.666667

Histogram Distribution:

The range of different columns within the data set (Age, Satisfaction)

# Question 7 & 8

# Keeps full data set
Sat <- SatisfactionSurvey

# Making the Histogram
hist(Sat$Age,
     col = primary.colors(30),
     border = "grey",
     main = "Employee Age Distribution",
     xlab = "Age",
)


hist(Sat$Satisfaction,
     col = primary.colors(30),
     border = "grey",
     main = "Satisfaction Distribution",
     xlab = "Satisfaction Scores",
)

#

Distribution analysis through box plots:

Assessing data spread through box plot, determining IQR to identify outliers.

# Question 9-12

# Keeps full data set
Sat <- SatisfactionSurvey

# Satisfaction across Departments
boxplot(Sat_Dep,
        data = Sat,
        col = c("orchid3", "plum4", "lightpink3", "lightsteelblue"),
        border = "grey",
        main = "Satisfaction Ratings by Department",
        xlab = "Department",
        ylab = "Satisfaction Score"
)


#Age Distribution across Gender
boxplot(Sat$Age ~ Sat$Gender,
        data = Sat,
        col = c("pink2", "skyblue2", "springgreen2"),
        border = "grey",
        main = "Different Age Range by Gender",
        xlab = "Gender",
        ylab = "Ages"
)


# Overall Satisfaction Scores
boxplot(Sat$Satisfaction,
        col = "lightsteelblue3",
        border = "black",
        main = "Boxplot of Satisfaction",
        ylab = "Satisfaction Score")


# Explaining findings- overall satisfaction
message("IQR and Outliers")
cat("Satisfaction Scores:",
    "\nIQR:", IQR(Sat$Satisfaction, na.rm = TRUE),
    "\nQ1: 6, Q3: 8",
    "\nRange: 3-11")
Satisfaction Scores: 
IQR: 2 
Q1: 6, Q3: 8 
Range: 3-11
# Explaining Satisfaction per Department
cat("\nSatisfaction Scores per Department:",
    "\nIQR per Department:\n")

Satisfaction Scores per Department: 
IQR per Department:
# breakdown per department
tapply(Sat$Satisfaction, Sat$Department, IQR, na.rm = TRUE)
  Finance        HR        IT Marketing 
        1         1         1         2 
cat("Ranges per Department:",
    "\nFinance & IT : 4.5-8.5",
    "\nHR: 5.5-9.5",
    "\nMarketing: 2-9")
Ranges per Department: 
Finance & IT : 4.5-8.5 
HR: 5.5-9.5 
Marketing: 2-9
LS0tDQp0aXRsZTogIlByZXNlbnRhdGlvbiAzLSBDYXNzaWR5IExvbmdvcmlhIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCkhvdyBUbyBhY2Nlc3MgYSBjb2x1bW4gaW4gUjoNCldlIGhhdmUgYSBkYXRhc2V0IG9mIGEgc3VydmV5IGNvbnRhaW5pbmcgbXVsdGlwbGUgY29sdW1ucyBvZiBpbmZvcm1hdGlvbi4gDQpXZSBhcmUgaW50ZXJlc3RlZCBpbiB0aGUgaXNvbGF0aW5nIHRoZSBzYXRpc2ZhY3Rpb24gc2NvcmVzIG9mIHRoZSBzdXJ2ZXk6DQoNClNvLCB3ZSBuZWVkIHRvIGV4dHJhY3QgdGhlIGRhdGEgZnJvbSB0aGUgU2F0aXNmYWN0aW9uIGNvbHVtbjoNCg0KYGBge3J9DQojIFF1ZXN0aW9uIDEgJiAyDQojIFExOiBNZWFuIGFuZCBNZWRpYW4gb2YgU2F0aXNmYWN0aW9uIFJhdGluZ3MNCiMgUTI6IEZpbmQgdGhlIGF2ZXJhZ2UgYWdlIG9mIHNvbWVvbmUgd29ya2luZyBpbiBIUg0KDQojIEV4dHJhY3RzIHRoZSBzYXRpc2ZhY3Rpb24gY29sdW1uIGZyb20gb3VyIGRhdGEgc2V0IGNyZWF0aW5nIHZlY3RvciBub3cgcmVmZXJyZWQgdG8gYXMgIlNhdCINClNhdDwtU2F0aXNmYWN0aW9uU3VydmV5JFNhdGlzZmFjdGlvbg0KDQojIENyZWF0aW5nIGEgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGFnZXMgb2YgdGhvc2UgaW4gdGhlIEhSIERlcGFydG1lbnQNCkhSX0FnZXM8LSBTYXRpc2ZhY3Rpb25TdXJ2ZXkkQWdlW1NhdGlzZmFjdGlvblN1cnZleSREZXBhcnRtZW50ID09ICJIUiJdDQoNCiMgQXZlcmFnZSBhZ2Ugb2YgdGhvc2UgaW4gdGhlIEhSIGRlcGFydG1lbnQNCm1lYW4oSFJfQWdlcykNCg0KIyBDYWxjdWxhdGVzIHRoZSBtZWFuIGFuZCBtZWRpYW4gb2YgdGhlIFNhdGlzZmFjdGlvbiB2YXJpYWJsZQ0KbWVhbihTYXQpDQptZWRpYW4oU2F0KQ0KDQojIENyZWF0ZXMgYSBoaXN0b2dyYW0gYW5kIGJveHBsb3QgZGlzcGxheWluZyBTYXRpc2ZhY3Rpb24gc2NvcmVzDQpoaXN0KFNhdCwNCiAgICAgY29sID0gcmFpbmJvdyg1KSwNCiAgICAgYm9yZGVyID0gImdyZXkiLA0KICAgICBtYWluID0gIlNhdGlzZmFjdGlvbiBEaXN0cmlidXRpb24iLA0KICAgICB4bGFiID0gIlNhdGlzZmFjdGlvbiBTY29yZSIsDQogICkNCg0KYm94cGxvdChTYXQsDQogICAgICAgIGNvbCA9ICJsaWdodHN0ZWVsYmx1ZTMiLA0KICAgICAgICBib3JkZXIgPSAiYmxhY2siLA0KICAgICAgICBtYWluID0gIkJveHBsb3Qgb2YgU2F0aXNmYWN0aW9uIiwNCiAgICAgICAgeWxhYiA9ICJTYXRpc2ZhY3Rpb24gU2NvcmUiKQ0KDQpgYGANCg0KQ29udmVydGluZyBjb2x1bW5zIHdpdGhpbiB0aGUgZGF0YSBzZXQgaW50byBtYXRyaWNlczoNCg0KRGV0ZXJtaW5pbmcgdGhlIGF2ZXJhZ2Ugc2F0aXNmYWN0aW9uIHJhdGluZyBvZiBlYWNoIGFnZSBncm91cC4NCg0KYGBge3J9DQojIFF1ZXN0aW9uIDMNCiMgRXh0cmFjdHMgdGhlIHNhdGlzZmFjdGlvbiBmcm9tIG91ciBkYXRhIHNldCBjcmVhdGluZyB2ZWN0b3Igbm93IHJlZmVycmVkIHRvIGFzICJTYXQiDQpTYXQgPC0gU2F0aXNmYWN0aW9uU3VydmV5DQoNCiMgQ3JlYXRlcyBhIG1hdHJpeCBjb250YWluaW5nIGNvbHVtbnMgQWdlIGFuZCBTYXRpc2ZhY3Rpb24gc2NvcmVzDQpBZ2VfU2F0X01hdHJpeCA8LSBhcy5tYXRyaXgoU2F0WywgYygiQWdlIiwgIlNhdGlzZmFjdGlvbiIpXSkNCg0KDQpBZ2VfTWVhbl9TYXQgPC0gdGFwcGx5KEFnZV9TYXRfTWF0cml4WywgMl0sDQogICAgICAgICAgICAgICAgICAgICAgIEFnZV9TYXRfTWF0cml4WywgMV0sDQogICAgICAgICAgICAgICAgICAgICAgIG1lYW4sbmEucm0gPSBUUlVFKQ0KDQojIENyZWF0ZXMgZGF0YSBmcmFtZSB1c2luZyBvdXIgbWF0cml4DQpBZ2VfTWVhbl9TYXRfZGYgPC0gZGF0YS5mcmFtZSgNCiAgICAgICAgICAgICAgICAgICBBZ2UgPSBhcy5udW1lcmljKG5hbWVzKEFnZV9NZWFuX1NhdCkpLA0KICAgICAgICAgICAgICAgICAgICJNZWFuIFNhdGlzZmFjdGlvbiIgPSBhcy5udW1lcmljKEFnZV9NZWFuX1NhdCkNCikNCg0KIyBNYWtlcyBhIGNsZWFuZXIgdmVyc2lvbiBvZiBvdXIgZGF0YQ0KbmFtZXMoQWdlX01lYW5fU2F0X2RmKSA8LSBjKCJBZ2UiLCAiTWVhbiBTYXRpc2ZhY3Rpb24iKQ0KDQojIERpc3BsYXlzIGRhdGEgZnJhbWUNCkFnZV9NZWFuX1NhdF9kZg0KYGBgDQoNCkNyZWF0aW5nIGEgbWF0cml4IHNvcnRpbmcgbmFtZWQgZWxlbWVudHMgYW5kIGEgbnVtYmVyaWMgdmFsdWU6DQoNCkRldGVybWluaW5nIHRoZSBhdmVyYWdlIHNhdGlzZmFjdGlvbiBzY29yZSBwZXIgZGVwYXJ0bWVudDoNCg0KYGBgIHtyfQ0KIyBRdWVzdGlvbiA0DQoNCiMgS2VlcHMgZnVsbCBkYXRhIHNldA0KU2F0IDwtIFNhdGlzZmFjdGlvblN1cnZleQ0KDQojIE1lYW4gU2F0aXNmYWN0aW9uIHBlciBEZXBhcnRtZW50DQpEZXBhcnRtZW50X01lYW5fU2F0IDwtIHRhcHBseShTYXQkU2F0aXNmYWN0aW9uLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTYXQkRGVwYXJ0bWVudCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWFuLG5hLnJtID0gVFJVRSkNCg0KIyBDb252ZXJ0IHRvIG1hdHJpeCB3aXRoIGRlcGFydG1lbnRzIGFzIGNvbHVtbnMNCkRlcGFydG1lbnRfU2F0X01hdHJpeCA8LSBtYXRyaXgoRGVwYXJ0bWVudF9NZWFuX1NhdCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnJvdyA9IDEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpbW5hbWVzID0gbGlzdChOVUxMLCBuYW1lcyhEZXBhcnRtZW50X01lYW5fU2F0KSkpDQoNCiMgVHJhbnNwb3NlcyBtYXRyaXggaW50byBkZXBhcnRtZW50cyBhcyByb3dzDQpEZXBhcnRtZW50X1NhdF9NYXRyaXhfVCA8LSB0KERlcGFydG1lbnRfU2F0X01hdHJpeCkNCg0KIyBSZW5hbWUgY29sdW1uIG5hbWUgZm9yIGNsYXJpdHkNCmNvbG5hbWVzKERlcGFydG1lbnRfU2F0X01hdHJpeF9UKSA8LSBjKCJNZWFuIFNhdGlzZmFjdGlvbiIpDQoNCiMgVmlldyBNYXRyaXgNCkRlcGFydG1lbnRfU2F0X01hdHJpeF9UDQpgYGANCg0KQW5hbHl6aW5nIERhdGEgZnJhbWVzOg0KDQpTdW1tYXJpemluZyB0aGUgR2VuZGVyIGFuZCBEZXBhcnRtZW50IGNvbHVtbnM6DQoNCkZpbHRlcmluZyB0aGUgRGF0YSBmcmFtZSB0byBvbmx5IG1lYXN1cmUgdGhlIFNhdGlzZmFjdGlvbiBTY29yZXMgb2YgdGhvc2UgYWdlZCAzMC00MDoNCg0KYGBge3J9DQojIFF1ZXN0aW9uIDUgJiA2DQoNCiMgS2VlcHMgZnVsbCBkYXRhIHNldA0KU2F0IDwtIFNhdGlzZmFjdGlvblN1cnZleQ0KDQojIENvbHVtbnMgYW5kIFJvd3Mgb2YgZGF0YSBzZXQNCmRpbShTYXQpDQpucm93KFNhdCkNCm5jb2woU2F0KQ0KDQojIENvbnZlcnRpbmcgdmFsdWVzIHRvIGZhY3RvcnMNClNhdCRHZW5kZXIgPC0gYXMuZmFjdG9yKFNhdCRHZW5kZXIpDQpTYXQkRGVwYXJ0bWVudCA8LSBhcy5mYWN0b3IoU2F0JERlcGFydG1lbnQpDQoNCiMgU3VtbWFyeSBvZiBjb2x1bW5zDQptZXNzYWdlKCJEZW1vZ3JhcGhpY3M6IEdlbmRlciBhbmQgRGVwYXJ0bWVudCBEZW1vZ3JhcGhpY3MiKQ0Kc3VtbWFyeShTYXQkR2VuZGVyKQ0Kc3VtbWFyeShTYXQkRGVwYXJ0bWVudCkNCg0KIyBNZWFuIG9mIGZpbHRlcmVkIGRhdGENCm1lc3NhZ2UoIkF2ZXJhZ2UgU2F0aXNmYWN0aW9uIGZvciBpbmRpdmlkdWFscyBhZ2VkIDMwLTQwIikNCkZpbHRlcmVkX1NhdCA8LSBTYXRbU2F0JEFnZSA+PSAzMCAmIFNhdCRBZ2UgPD0gNDAsIF0NCm1lYW4oRmlsdGVyZWRfU2F0JFNhdGlzZmFjdGlvbiwgbmEucm0gPSBUUlVFKQ0KDQpgYGANCg0KSGlzdG9ncmFtIERpc3RyaWJ1dGlvbjoNCg0KVGhlIHJhbmdlIG9mIGRpZmZlcmVudCBjb2x1bW5zIHdpdGhpbiB0aGUgZGF0YSBzZXQgKEFnZSwgU2F0aXNmYWN0aW9uKQ0KDQpgYGB7cn0NCiMgUXVlc3Rpb24gNyAmIDgNCg0KIyBLZWVwcyBmdWxsIGRhdGEgc2V0DQpTYXQgPC0gU2F0aXNmYWN0aW9uU3VydmV5DQoNCiMgTWFraW5nIHRoZSBIaXN0b2dyYW0NCmhpc3QoU2F0JEFnZSwNCiAgICAgY29sID0gcHJpbWFyeS5jb2xvcnMoMzApLA0KICAgICBib3JkZXIgPSAiZ3JleSIsDQogICAgIG1haW4gPSAiRW1wbG95ZWUgQWdlIERpc3RyaWJ1dGlvbiIsDQogICAgIHhsYWIgPSAiQWdlIiwNCikNCg0KaGlzdChTYXQkU2F0aXNmYWN0aW9uLA0KICAgICBjb2wgPSBwcmltYXJ5LmNvbG9ycygzMCksDQogICAgIGJvcmRlciA9ICJncmV5IiwNCiAgICAgbWFpbiA9ICJTYXRpc2ZhY3Rpb24gRGlzdHJpYnV0aW9uIiwNCiAgICAgeGxhYiA9ICJTYXRpc2ZhY3Rpb24gU2NvcmVzIiwNCikNCiMNCmBgYA0KDQpEaXN0cmlidXRpb24gYW5hbHlzaXMgdGhyb3VnaCBib3ggcGxvdHM6DQoNCkFzc2Vzc2luZyBkYXRhIHNwcmVhZCB0aHJvdWdoIGJveCBwbG90LCBkZXRlcm1pbmluZyBJUVIgdG8gaWRlbnRpZnkgb3V0bGllcnMuDQoNCmBgYHtyfQ0KIyBRdWVzdGlvbiA5LTEyDQoNCiMgS2VlcHMgZnVsbCBkYXRhIHNldA0KU2F0IDwtIFNhdGlzZmFjdGlvblN1cnZleQ0KDQojIFNhdGlzZmFjdGlvbiBhY3Jvc3MgRGVwYXJ0bWVudHMNCmJveHBsb3QoU2F0X0RlcCwNCiAgICAgICAgZGF0YSA9IFNhdCwNCiAgICAgICAgY29sID0gYygib3JjaGlkMyIsICJwbHVtNCIsICJsaWdodHBpbmszIiwgImxpZ2h0c3RlZWxibHVlIiksDQogICAgICAgIGJvcmRlciA9ICJncmV5IiwNCiAgICAgICAgbWFpbiA9ICJTYXRpc2ZhY3Rpb24gUmF0aW5ncyBieSBEZXBhcnRtZW50IiwNCiAgICAgICAgeGxhYiA9ICJEZXBhcnRtZW50IiwNCiAgICAgICAgeWxhYiA9ICJTYXRpc2ZhY3Rpb24gU2NvcmUiDQopDQoNCiNBZ2UgRGlzdHJpYnV0aW9uIGFjcm9zcyBHZW5kZXINCmJveHBsb3QoU2F0JEFnZSB+IFNhdCRHZW5kZXIsDQogICAgICAgIGRhdGEgPSBTYXQsDQogICAgICAgIGNvbCA9IGMoInBpbmsyIiwgInNreWJsdWUyIiwgInNwcmluZ2dyZWVuMiIpLA0KICAgICAgICBib3JkZXIgPSAiZ3JleSIsDQogICAgICAgIG1haW4gPSAiRGlmZmVyZW50IEFnZSBSYW5nZSBieSBHZW5kZXIiLA0KICAgICAgICB4bGFiID0gIkdlbmRlciIsDQogICAgICAgIHlsYWIgPSAiQWdlcyINCikNCg0KIyBPdmVyYWxsIFNhdGlzZmFjdGlvbiBTY29yZXMNCmJveHBsb3QoU2F0JFNhdGlzZmFjdGlvbiwNCiAgICAgICAgY29sID0gImxpZ2h0c3RlZWxibHVlMyIsDQogICAgICAgIGJvcmRlciA9ICJibGFjayIsDQogICAgICAgIG1haW4gPSAiQm94cGxvdCBvZiBTYXRpc2ZhY3Rpb24iLA0KICAgICAgICB5bGFiID0gIlNhdGlzZmFjdGlvbiBTY29yZSIpDQoNCiMgRXhwbGFpbmluZyBmaW5kaW5ncy0gb3ZlcmFsbCBzYXRpc2ZhY3Rpb24NCm1lc3NhZ2UoIklRUiBhbmQgT3V0bGllcnMiKQ0KY2F0KCJTYXRpc2ZhY3Rpb24gU2NvcmVzOiIsDQogICAgIlxuSVFSOiIsIElRUihTYXQkU2F0aXNmYWN0aW9uLCBuYS5ybSA9IFRSVUUpLA0KICAgICJcblExOiA2LCBRMzogOCIsDQogICAgIlxuUmFuZ2U6IDMtMTEiKQ0KDQojIEV4cGxhaW5pbmcgU2F0aXNmYWN0aW9uIHBlciBEZXBhcnRtZW50DQpjYXQoIlxuU2F0aXNmYWN0aW9uIFNjb3JlcyBwZXIgRGVwYXJ0bWVudDoiLA0KICAgICJcbklRUiBwZXIgRGVwYXJ0bWVudDpcbiIpDQoNCiMgYnJlYWtkb3duIHBlciBkZXBhcnRtZW50DQp0YXBwbHkoU2F0JFNhdGlzZmFjdGlvbiwgU2F0JERlcGFydG1lbnQsIElRUiwgbmEucm0gPSBUUlVFKQ0KY2F0KCJSYW5nZXMgcGVyIERlcGFydG1lbnQ6IiwNCiAgICAiXG5GaW5hbmNlICYgSVQgOiA0LjUtOC41IiwNCiAgICAiXG5IUjogNS41LTkuNSIsDQogICAgIlxuTWFya2V0aW5nOiAyLTkiKQ0KDQpgYGA=