We want to generate a dataset within R, which includes creating categorical variables that are initially character strings.

# Set a seed for reproducibility
set.seed(123)

# Create sample data in R
data <- data.frame(
  ID = 1:30,
  Gender = sample(c("Male", "Female"), 30, replace = TRUE),
  AgeGroup = sample(c("18-25", "26-35", "36-45"), 30, replace = TRUE),
  EducationLevel = sample(c("High School", "Bachelor's", "Master's", "PhD"), 30, replace = TRUE),
  stringsAsFactors = FALSE  # Ensure that character data is not automatically converted to factors
)

# Display the first few rows of the dataset
head(data)
NA

We want to display a structure of this dataset.

# Display the structure of the dataset
str(data)
'data.frame':   30 obs. of  4 variables:
 $ ID            : int  1 2 3 4 5 6 7 8 9 10 ...
 $ Gender        : chr  "Male" "Male" "Male" "Female" ...
 $ AgeGroup      : chr  "18-25" "26-35" "36-45" "26-35" ...
 $ EducationLevel: chr  "High School" "Master's" "High School" "Bachelor's" ...

We want convert the Gender, AgeGroup, and EducationLevel columns from character strings to factors to better manage categorical data.

# Convert character columns to factors
data$Gender <- as.factor(data$Gender)
data$AgeGroup <- as.factor(data$AgeGroup)
data$EducationLevel <- as.factor(data$EducationLevel)

We want to see the structure post conversion to verify the change.

str(data)
'data.frame':   30 obs. of  4 variables:
 $ ID            : int  1 2 3 4 5 6 7 8 9 10 ...
 $ Gender        : Factor w/ 2 levels "Female","Male": 2 2 2 1 2 1 1 1 2 2 ...
 $ AgeGroup      : Factor w/ 3 levels "18-25","26-35",..: 1 2 3 2 1 3 3 1 3 2 ...
 $ EducationLevel: Factor w/ 4 levels "Bachelor's","High School",..: 2 3 2 1 2 3 2 3 1 4 ...

We want to see a summary of these factor columns.

# Get a summary of the factor columns
summary(data$Gender)
Female   Male 
    13     17 
summary(data$AgeGroup)
18-25 26-35 36-45 
   13     7    10 
summary(data$EducationLevel)
 Bachelor's High School    Master's         PhD 
          9           8           7           6 

We want to visualize the data through bar plots

library(ggplot2)
Want to understand how all the pieces fit together? Read R for Data
Science: https://r4ds.hadley.nz/
# Bar plot for Gender distribution
ggplot(data, aes(x = Gender)) +
  geom_bar(fill = "skyblue") +
  labs(title = "Gender Distribution", x = "Gender", y = "Count") +
  theme_minimal()

# Bar plot for Age Group distribution
ggplot(data, aes(x = AgeGroup)) +
  geom_bar(fill = "lightgreen") +
  labs(title = "Age Group Distribution", x = "Age Group", y = "Count") +
  theme_minimal()

# Bar plot for Education Level distribution
ggplot(data, aes(x = EducationLevel)) +
  geom_bar(fill = "lightcoral") +
  labs(title = "Education Level Distribution", x = "Education Level", y = "Count") +
  theme_minimal()

The bar plots show that the age group predominantly skews to the younger 18-25 demographic. It could impact the analysis if your looking for data for older age groups. A younger demographic could affect things such as health, purchasing trends, and also educational goals. I dont really see any surprising trends from this data.

LS0tDQp0aXRsZTogIlByZXNlbnRhdGlvbiA0IEpvc2UgU2FsYXphciINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQpXZSB3YW50IHRvIGdlbmVyYXRlIGEgZGF0YXNldCB3aXRoaW4gUiwgd2hpY2ggaW5jbHVkZXMgY3JlYXRpbmcgY2F0ZWdvcmljYWwgdmFyaWFibGVzIHRoYXQgYXJlIGluaXRpYWxseSBjaGFyYWN0ZXIgc3RyaW5ncy4NCg0KYGBge3J9DQojIFNldCBhIHNlZWQgZm9yIHJlcHJvZHVjaWJpbGl0eQ0Kc2V0LnNlZWQoMTIzKQ0KDQojIENyZWF0ZSBzYW1wbGUgZGF0YSBpbiBSDQpkYXRhIDwtIGRhdGEuZnJhbWUoDQogIElEID0gMTozMCwNCiAgR2VuZGVyID0gc2FtcGxlKGMoIk1hbGUiLCAiRmVtYWxlIiksIDMwLCByZXBsYWNlID0gVFJVRSksDQogIEFnZUdyb3VwID0gc2FtcGxlKGMoIjE4LTI1IiwgIjI2LTM1IiwgIjM2LTQ1IiksIDMwLCByZXBsYWNlID0gVFJVRSksDQogIEVkdWNhdGlvbkxldmVsID0gc2FtcGxlKGMoIkhpZ2ggU2Nob29sIiwgIkJhY2hlbG9yJ3MiLCAiTWFzdGVyJ3MiLCAiUGhEIiksIDMwLCByZXBsYWNlID0gVFJVRSksDQogIHN0cmluZ3NBc0ZhY3RvcnMgPSBGQUxTRSAgIyBFbnN1cmUgdGhhdCBjaGFyYWN0ZXIgZGF0YSBpcyBub3QgYXV0b21hdGljYWxseSBjb252ZXJ0ZWQgdG8gZmFjdG9ycw0KKQ0KDQojIERpc3BsYXkgdGhlIGZpcnN0IGZldyByb3dzIG9mIHRoZSBkYXRhc2V0DQpoZWFkKGRhdGEpDQoNCmBgYA0KDQpXZSB3YW50IHRvIGRpc3BsYXkgYSBzdHJ1Y3R1cmUgb2YgdGhpcyBkYXRhc2V0Lg0KYGBge3J9DQojIERpc3BsYXkgdGhlIHN0cnVjdHVyZSBvZiB0aGUgZGF0YXNldA0Kc3RyKGRhdGEpDQpgYGANCldlIHdhbnQgY29udmVydCB0aGUgR2VuZGVyLCBBZ2VHcm91cCwgYW5kIEVkdWNhdGlvbkxldmVsIGNvbHVtbnMgZnJvbSBjaGFyYWN0ZXIgc3RyaW5ncyB0byBmYWN0b3JzIHRvIGJldHRlciBtYW5hZ2UgY2F0ZWdvcmljYWwgZGF0YS4NCmBgYHtyfQ0KIyBDb252ZXJ0IGNoYXJhY3RlciBjb2x1bW5zIHRvIGZhY3RvcnMNCmRhdGEkR2VuZGVyIDwtIGFzLmZhY3RvcihkYXRhJEdlbmRlcikNCmRhdGEkQWdlR3JvdXAgPC0gYXMuZmFjdG9yKGRhdGEkQWdlR3JvdXApDQpkYXRhJEVkdWNhdGlvbkxldmVsIDwtIGFzLmZhY3RvcihkYXRhJEVkdWNhdGlvbkxldmVsKQ0KYGBgDQoNCldlIHdhbnQgdG8gc2VlIHRoZSBzdHJ1Y3R1cmUgcG9zdCBjb252ZXJzaW9uIHRvIHZlcmlmeSB0aGUgY2hhbmdlLg0KYGBge3J9DQpzdHIoZGF0YSkNCmBgYA0KV2Ugd2FudCB0byBzZWUgYSBzdW1tYXJ5IG9mIHRoZXNlIGZhY3RvciBjb2x1bW5zLg0KYGBge3J9DQojIEdldCBhIHN1bW1hcnkgb2YgdGhlIGZhY3RvciBjb2x1bW5zDQpzdW1tYXJ5KGRhdGEkR2VuZGVyKQ0Kc3VtbWFyeShkYXRhJEFnZUdyb3VwKQ0Kc3VtbWFyeShkYXRhJEVkdWNhdGlvbkxldmVsKQ0KYGBgDQpXZSB3YW50IHRvIHZpc3VhbGl6ZSB0aGUgZGF0YSB0aHJvdWdoIGJhciBwbG90cw0KYGBge3J9DQpsaWJyYXJ5KGdncGxvdDIpDQoNCiMgQmFyIHBsb3QgZm9yIEdlbmRlciBkaXN0cmlidXRpb24NCmdncGxvdChkYXRhLCBhZXMoeCA9IEdlbmRlcikpICsNCiAgZ2VvbV9iYXIoZmlsbCA9ICJza3libHVlIikgKw0KICBsYWJzKHRpdGxlID0gIkdlbmRlciBEaXN0cmlidXRpb24iLCB4ID0gIkdlbmRlciIsIHkgPSAiQ291bnQiKSArDQogIHRoZW1lX21pbmltYWwoKQ0KYGBgDQpgYGB7cn0NCiMgQmFyIHBsb3QgZm9yIEFnZSBHcm91cCBkaXN0cmlidXRpb24NCmdncGxvdChkYXRhLCBhZXMoeCA9IEFnZUdyb3VwKSkgKw0KICBnZW9tX2JhcihmaWxsID0gImxpZ2h0Z3JlZW4iKSArDQogIGxhYnModGl0bGUgPSAiQWdlIEdyb3VwIERpc3RyaWJ1dGlvbiIsIHggPSAiQWdlIEdyb3VwIiwgeSA9ICJDb3VudCIpICsNCiAgdGhlbWVfbWluaW1hbCgpDQpgYGANCg0KYGBge3J9DQojIEJhciBwbG90IGZvciBFZHVjYXRpb24gTGV2ZWwgZGlzdHJpYnV0aW9uDQpnZ3Bsb3QoZGF0YSwgYWVzKHggPSBFZHVjYXRpb25MZXZlbCkpICsNCiAgZ2VvbV9iYXIoZmlsbCA9ICJsaWdodGNvcmFsIikgKw0KICBsYWJzKHRpdGxlID0gIkVkdWNhdGlvbiBMZXZlbCBEaXN0cmlidXRpb24iLCB4ID0gIkVkdWNhdGlvbiBMZXZlbCIsIHkgPSAiQ291bnQiKSArDQogIHRoZW1lX21pbmltYWwoKQ0KYGBgDQpUaGUgYmFyIHBsb3RzIHNob3cgdGhhdCB0aGUgYWdlIGdyb3VwIHByZWRvbWluYW50bHkgc2tld3MgdG8gdGhlIHlvdW5nZXIgMTgtMjUgZGVtb2dyYXBoaWMuIEl0IGNvdWxkIGltcGFjdCB0aGUgYW5hbHlzaXMgaWYgeW91ciBsb29raW5nIGZvciBkYXRhIGZvciBvbGRlciBhZ2UgZ3JvdXBzLiBBIHlvdW5nZXIgZGVtb2dyYXBoaWMgY291bGQgYWZmZWN0IHRoaW5ncyBzdWNoIGFzIGhlYWx0aCwgcHVyY2hhc2luZyB0cmVuZHMsIGFuZCBhbHNvIGVkdWNhdGlvbmFsIGdvYWxzLiBJIGRvbnQgcmVhbGx5IHNlZSBhbnkgc3VycHJpc2luZyB0cmVuZHMgZnJvbSB0aGlzIGRhdGEuIA0K