Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ies-writing-achievement-study-data #739

Closed
ben-domingue opened this issue Dec 13, 2024 · 5 comments
Closed

ies-writing-achievement-study-data #739

ben-domingue opened this issue Dec 13, 2024 · 5 comments
Assignees

Comments

@ben-domingue
Copy link
Owner

https://github.com/EducationalTestingService/ies-writing-achievement-study-data

@KingArthur0205
Copy link
Collaborator

KingArthur0205 commented Jan 7, 2025

735 total students were surveyed. 565 out of 735 participants provided non-NA responses to the questions. Students who provided all NA responses were excluded in the processed dataset.

The questions have 4 components:

  1. Goals for Writing: 11 questions on a 5-point Likert scale.
  2. Confidence about Writing tasks: 22 questions on 0-100 scale
  3. Beliefs about Writing: 12 questions on a 5-point Likert scale.
  4. Feelings about Writing: 5 questions on a 5-point Likert scale.

The covariates are:

  1. participating_course_grade
  2. SAT_total
  3. cum_GPA(cumulative GPA)

@KingArthur0205
Copy link
Collaborator

KingArthur0205 commented Jan 7, 2025

Data:
ieswriting_molloy_2022.csv

Code:

# Paper:
# Data: https://github.com/EducationalTestingService/ies-writing-achievement-study-data
library(haven)
library(dplyr)
library(tidyr)

df <- read.csv("student_data.csv")
df <- df |>
  rename(id=Student_ID, cov_participating_course_grade=Participating_Course_Grade, cov_sat_total=FINAL_SAT_total, cov_cum_GPA=StudySemester_cumGPA)
df <- df |> 
  filter(across(starts_with("Q"), ~ !is.na(.)))

# ---------- Map Q3 strings to values ----------
Q3_df <- df |>
  select(starts_with("Q3"))
Q3_mapping <- c(
  "Strongly Disagree" = 1,
  "Disagree" = 2,
  "Neither agree nor disagree" = 3,
  "Agree" = 4,
  "Strongly Agree" = 5
)
Q3_df <- as.data.frame(lapply(Q3_df %>% select(starts_with("Q3")), function(col) Q3_mapping[col]))

# ---------- Map Q1 strings to values ----------
Q1_mapping <- c(
  "Does not describe me at all" = 1,
  "2" = 2,
  "Somewhat describes me" = 3,
  "4" = 4,
  "Describes me very well" = 5
)
Q1_df <- df |>
  select(starts_with("Q1"))
Q1_df <- as.data.frame(lapply(Q1_df, function(col) Q1_mapping[col]))

# ---------- Map Q2 strings to values ----------
Q2_df <- df |>
  select(starts_with("Q2"))
Q2_mapping <- c(
  "No Chance" = 0,
  "Completely Sure" = 100,
  "50/50 Chance" = 50
)
Q2_df <- as.data.frame(lapply(Q2_df, function(col) {
  # Use ifelse to check and replace values
  sapply(col, function(value) if (value %in% names(Q2_mapping)) Q2_mapping[value] else value)
}))
Q2_df <- as.data.frame(lapply(Q2_df, function(col) as.numeric(col)))
Q2_df <- as.data.frame(lapply(Q2_df, function(col) col / 10))

# ---------- Map Q4 strings to values ----------
Q4_df <- df |>
  select(starts_with("Q4"))
Q4_mapping <- c(
  "Strongly Disagree" = 1,
  "Disagree" = 2,
  "Neither agree nor disagree" = 3,
  "Agree" = 4,
  "Strongly Agree" = 5
)
Q4_df <- as.data.frame(lapply(Q4_df %>% select(starts_with("Q4")), function(col) Q4_mapping[col]))

final_df <- cbind(Q1_df, Q2_df, Q3_df, Q4_df)
cov_df <- df |>
  select(id, starts_with("cov"))
final_df <- cbind(cov_df, final_df)
final_df <- pivot_longer(final_df, cols=-c(id, starts_with("cov")), names_to="item", values_to="resp")

save(final_df, file="ieswriting_molloy_2022.rdata")
write.csv(final_df, "ieswriting_molloy_2022.csv", row.names=FALSE)

@KingArthur0205
Copy link
Collaborator

Added to data spreadsheet.
@KingArthur0205 Note to self: Need to add BibTex

@ben-domingue
Copy link
Owner Author

@KingArthur0205 think we should rescale the 10*N responses to just be N?

@KingArthur0205
Copy link
Collaborator

@ben-domingue Rescaled Q2 from 0 to 100 to 0 to 10. : )
PR for issue: #764
PR for BibTex: datapages/irw#37

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants