# Set working directory
# setwd()

new_data <- read.table('perceptionsofai_rnum_public.dat', sep=' ')
names(new_data) <- c('R0000300',
  'R0017900',
  'R0018000',
  'R0018001',
  'R0018002',
  'R0018003',
  'R0018004',
  'R0018005',
  'R0018500',
  'R0018501',
  'R0018502',
  'R0018503',
  'R0018504',
  'R0018505',
  'R0018506',
  'R0018600',
  'R0018601',
  'R0018602',
  'R0018603',
  'R0018604',
  'R0018605',
  'R0019100',
  'R0019200',
  'R0019300',
  'R0019600',
  'R0019700',
  'R0019701',
  'R0019702',
  'R0019703',
  'R0019704',
  'R0019705',
  'R0019706',
  'R0020200',
  'R0020201',
  'R0020202',
  'R0020203',
  'R0020204',
  'R0020300',
  'R0020500',
  'R0020600',
  'R0020700',
  'R0020800',
  'R0020801',
  'R0020802',
  'R0020803',
  'R0020804',
  'R0020805',
  'R0020900',
  'R0021000',
  'R0021300',
  'R0021301',
  'R0021302',
  'R0021303',
  'R0021304',
  'R0021305',
  'R0021306',
  'R0021800',
  'R0021801',
  'R0021802',
  'R0021803',
  'R0021804',
  'R0021805',
  'R0021806',
  'R0021900',
  'R0022000',
  'R0022001',
  'R0022002',
  'R0022003',
  'R0022100',
  'R0022200',
  'R0022300',
  'R0022301',
  'R0022302',
  'R0022303',
  'R0022304',
  'R0022305',
  'R0022306',
  'R0022400',
  'R0022500',
  'R0030800',
  'R0030801',
  'R0030802',
  'R0033900',
  'R0034000',
  'R0034100',
  'R0034200',
  'R0034300',
  'R0034800',
  'R0035900',
  'R0036000',
  'R0036300',
  'R0036900',
  'R0037100',
  'R0037200',
  'R0037300',
  'R0037500',
  'R0037600',
  'R0037700',
  'R0037800',
  'R0037900',
  'R0038100',
  'R0038200')

# Handle missing values

new_data[new_data == -1] = NA  # Refused
new_data[new_data == -2] = NA  # Dont know
new_data[new_data == -3] = NA  # Invalid missing
new_data[new_data == -4] = NA  # Valid missing
new_data[new_data == -5] = NA  # Non-interview


# If there are values not categorized they will be represented as NA

vallabels = function(data) {

  data$R0017900 <- factor(data$R0017900,
    levels=c(1.0,2.0,3.0,4.0,5.0,6.0),
    labels=c("I have little to no knowledge",
      "I have a basic understanding",
      "I have some working knowledge",
      "I have advanced knowledge",
      "I am an expert/I have professional level knowledge",
      "Not sure how to rate my knowledge")
  )

  data$R0018000 <- factor(data$R0018000,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Hands‑on use of AI tools (e.g., Copilot, ChatGPT)")
  )

  data$R0018500 <- factor(data$R0018500,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Spam filters and fraud detection")
  )

  data$R0018506 <- factor(data$R0018506,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "None of these")
  )

  data$R0018600 <- factor(data$R0018600,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Chatbots (e.g., customer service)")
  )

  data$R0018605 <- factor(data$R0018605,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "None")
  )

  data$R0019100 <- factor(data$R0019100,
    levels=c(1.0,2.0,3.0,4.0,5.0),
    labels=c("Very confident",
      "Somewhat confident",
      "Neither confident nor unconfident",
      "Not very confident",
      "Not at all confident")
  )

  data$R0019200 <- factor(data$R0019200,
    levels=c(0.0,1.0,2.0,3.0,4.0),
    labels=c("Not at all",
      "Daily",
      "Several days per week",
      "Once per week",
      "Less than once per week")
  )

  data$R0019300 <- factor(data$R0019300,
    levels=c(0.0,1.0,2.0,3.0,4.0),
    labels=c("Not at all",
      "Daily",
      "Several days per week",
      "Once per week",
      "Less than once per week")
  )

  data$R0019600 <- factor(data$R0019600,
    levels=c(1.0,2.0,3.0,4.0,5.0),
    labels=c("Strongly agree",
      "Somewhat agree",
      "Neither agree nor disagree",
      "Somewhat disagree",
      "Strongly disagree")
  )

  data$R0019700 <- factor(data$R0019700,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Independent safety audits and certification")
  )

  data$R0020200 <- factor(data$R0020200,
    levels=c(0.0,1.0,2.0,3.0),
    labels=c("Not at all",
      "A great deal",
      "A fair amount",
      "Not very much")
  )

  data$R0020201 <- factor(data$R0020201,
    levels=c(0.0,1.0,2.0,3.0),
    labels=c("Not at all",
      "A great deal",
      "A fair amount",
      "Not very much")
  )

  data$R0020202 <- factor(data$R0020202,
    levels=c(0.0,1.0,2.0,3.0),
    labels=c("Not at all",
      "A great deal",
      "A fair amount",
      "Not very much")
  )

  data$R0020203 <- factor(data$R0020203,
    levels=c(0.0,1.0,2.0,3.0),
    labels=c("Not at all",
      "A great deal",
      "A fair amount",
      "Not very much")
  )

  data$R0020204 <- factor(data$R0020204,
    levels=c(0.0,1.0,2.0,3.0),
    labels=c("Not at all",
      "A great deal",
      "A fair amount",
      "Not very much")
  )

  data$R0020300 <- factor(data$R0020300,
    levels=c(0.0,1.0,2.0),
    labels=c("No",
      "Yes",
      "Not sure")
  )

  data$R0020500 <- factor(data$R0020500,
    levels=c(1.0,2.0,3.0,4.0),
    labels=c("More confident",
      "Less confident",
      "No real change",
      "Not sure")
  )

  data$R0020600 <- factor(data$R0020600,
    levels=c(1.0,2.0,3.0,4.0,5.0),
    labels=c("Strongly agree",
      "Somewhat agree",
      "Neither agree nor disagree",
      "Somewhat disagree",
      "Strongly disagree")
  )

  data$R0020700 <- factor(data$R0020700,
    levels=c(1.0,2.0,3.0,4.0,97.0),
    labels=c("To improve productivity and efficiency in the workplace",
      "To enhance healthcare and education",
      "To assist with everyday personal tasks",
      "To solve complex global challenges",
      "Other purpose (please specify)")
  )

  data$R0020800 <- factor(data$R0020800,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Making legal decisions")
  )

  data$R0020805 <- factor(data$R0020805,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "None of the above")
  )

  data$R0020900 <- factor(data$R0020900,
    levels=c(1.0,2.0),
    labels=c("To prevent harm, the government should create new regulations for AI, even if it risks slowing down innovation.",
      "To encourage innovation, the government should not create new regulations for AI, even if it risks some harm.")
  )

  data$R0021300 <- factor(data$R0021300,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Safety testing/certification before deployment")
  )

  data$R0021800 <- factor(data$R0021800,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Healthcare")
  )

  data$R0021900 <- factor(data$R0021900,
    levels=c(0.0,1.0,2.0,3.0,4.0),
    labels=c("Not sure",
      "The developer/company",
      "The organization that deployed the AI",
      "The end user/operator",
      "Shared responsibility, case‑by‑case")
  )

  data$R0022000 <- factor(data$R0022000,
    levels=c(1.0,2.0,3.0,4.0,5.0),
    labels=c("Strongly agree",
      "Somewhat agree",
      "Neither agree nor disagree",
      "Somewhat disagree",
      "Strongly disagree")
  )

  data$R0022001 <- factor(data$R0022001,
    levels=c(1.0,2.0,3.0,4.0,5.0),
    labels=c("Strongly agree",
      "Somewhat agree",
      "Neither agree nor disagree",
      "Somewhat disagree",
      "Strongly disagree")
  )

  data$R0022002 <- factor(data$R0022002,
    levels=c(1.0,2.0,3.0,4.0,5.0),
    labels=c("Strongly agree",
      "Somewhat agree",
      "Neither agree nor disagree",
      "Somewhat disagree",
      "Strongly disagree")
  )

  data$R0022003 <- factor(data$R0022003,
    levels=c(1.0,2.0,3.0,4.0,5.0),
    labels=c("Strongly agree",
      "Somewhat agree",
      "Neither agree nor disagree",
      "Somewhat disagree",
      "Strongly disagree")
  )

  data$R0022100 <- factor(data$R0022100,
    levels=c(1.0,2.0,3.0,4.0,5.0,6.0),
    labels=c("Federal government",
      "State governments",
      "Technology companies",
      "Independent oversight bodies",
      "International organizations",
      "I am unsure")
  )

  data$R0022200 <- factor(data$R0022200,
    levels=c(1.0,2.0,3.0,4.0,5.0),
    labels=c("Very confident",
      "Somewhat confident",
      "Not very confident",
      "Not at all confident",
      "I am unsure")
  )

  data$R0022300 <- factor(data$R0022300,
    levels=c(1.0,2.0,3.0,4.0,5.0),
    labels=c("Strongly agree",
      "Somewhat agree",
      "Neither agree nor disagree",
      "Somewhat disagree",
      "Strongly disagree")
  )

  data$R0022301 <- factor(data$R0022301,
    levels=c(1.0,2.0,3.0,4.0,5.0),
    labels=c("Strongly agree",
      "Somewhat agree",
      "Neither agree nor disagree",
      "Somewhat disagree",
      "Strongly disagree")
  )

  data$R0022302 <- factor(data$R0022302,
    levels=c(1.0,2.0,3.0,4.0,5.0),
    labels=c("Strongly agree",
      "Somewhat agree",
      "Neither agree nor disagree",
      "Somewhat disagree",
      "Strongly disagree")
  )

  data$R0022303 <- factor(data$R0022303,
    levels=c(1.0,2.0,3.0,4.0,5.0),
    labels=c("Strongly agree",
      "Somewhat agree",
      "Neither agree nor disagree",
      "Somewhat disagree",
      "Strongly disagree")
  )

  data$R0022304 <- factor(data$R0022304,
    levels=c(1.0,2.0,3.0,4.0,5.0),
    labels=c("Strongly agree",
      "Somewhat agree",
      "Neither agree nor disagree",
      "Somewhat disagree",
      "Strongly disagree")
  )

  data$R0022305 <- factor(data$R0022305,
    levels=c(1.0,2.0,3.0,4.0,5.0),
    labels=c("Strongly agree",
      "Somewhat agree",
      "Neither agree nor disagree",
      "Somewhat disagree",
      "Strongly disagree")
  )

  data$R0022306 <- factor(data$R0022306,
    levels=c(1.0,2.0,3.0,4.0,5.0),
    labels=c("Strongly agree",
      "Somewhat agree",
      "Neither agree nor disagree",
      "Somewhat disagree",
      "Strongly disagree")
  )

  data$R0022400 <- factor(data$R0022400,
    levels=c(0.0,1.0,2.0,3.0,4.0,5.0,6.0),
    labels=c("I have no concerns",
      "Job displacement",
      "Privacy violations",
      "Bias and discrimination",
      "Loss of human control",
      "Misinformation and deepfakes",
      "AI surpassing human intelligence")
  )

  data$R0022500 <- factor(data$R0022500,
    levels=c(0.0,1.0,2.0,3.0),
    labels=c("No",
      "Yes, definitely",
      "Possibly",
      "I am unsure")
  )

  data$R0033900 <- factor(data$R0033900,
    levels=c(1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0),
    labels=c("18-19",
      "20-24",
      "25-29",
      "30-34",
      "35-39",
      "40-44",
      "45-49",
      "50-54",
      "55-59",
      "60-64",
      "65-69",
      "70-74",
      "75-79",
      "80-84",
      "85-89",
      "90+")
  )

  data$R0034800 <- factor(data$R0034800,
    levels=c(1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,97.0),
    labels=c("Extremely liberal",
      "Liberal",
      "Slightly liberal",
      "Moderate or middle of the road",
      "Slightly conservative",
      "Conservative",
      "Extremely conservative",
      "None of the above",
      "Other (please specify)")
  )

  data$R0035900 <- factor(data$R0035900,
    levels=c(1.0,2.0,3.0,4.0,5.0),
    labels=c("Man",
      "Woman",
      "A different gender",
      "Non-binary",
      "Transgender")
  )

  data$R0036000 <- factor(data$R0036000,
    levels=c(1.0,2.0),
    labels=c("Male",
      "Female")
  )

  data$R0036900 <- factor(data$R0036900,
    levels=c(0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,97.0),
    labels=c("No formal schooling",
      "Elementary School",
      "Middle School or Junior High",
      "Some High School",
      "High School diploma, GED or equivalent",
      "Some College",
      "Associate's degree",
      "Bachelor's degree",
      "Master's degree",
      "Doctoral degree (PhD)",
      "Professional degree (MD, JD, DDS)",
      "Other (please specify)")
  )

  data$R0037100 <- factor(data$R0037100,
    levels=c(0.0,1.0),
    labels=c("No",
      "Yes")
  )

  data$R0037200 <- factor(data$R0037200,
    levels=c(0.0,1.0),
    labels=c("No",
      "Yes")
  )

  data$R0037300 <- factor(data$R0037300,
    levels=c(0.0,1.0),
    labels=c("No",
      "Yes")
  )

  data$R0037500 <- factor(data$R0037500,
    levels=c(0.0,1.0),
    labels=c("No",
      "Yes")
  )

  data$R0037600 <- factor(data$R0037600,
    levels=c(0.0,1.0),
    labels=c("No",
      "Yes")
  )

  data$R0037700 <- factor(data$R0037700,
    levels=c(0.0,1.0),
    labels=c("No",
      "Yes")
  )

  data$R0037800 <- factor(data$R0037800,
    levels=c(0.0,1.0),
    labels=c("No",
      "Yes")
  )

  data$R0037900 <- factor(data$R0037900,
    levels=c(0.0,1.0),
    labels=c("No",
      "Yes")
  )

  data$R0038100 <- factor(data$R0038100,
    levels=c(0.0,1.0),
    labels=c("No",
      "Yes")
  )

  data$R0038200 <- factor(data$R0038200,
    levels=c(0.0,1.0),
    labels=c("No",
      "Yes")
  )


return(data)
}

# If there are values not categorized they will be represented as NA

vallabels_continuous = function(data) {
  data$R0021804[1.0 <= data$R0021804 & data$R0021804 <= 5.0] <- 1.0

  data$R0021804 <- factor(data$R0021804,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Elections/media/information integrity")
  )

  data$R0019704[1.0 <= data$R0019704 & data$R0019704 <= 5.0] <- 1.0

  data$R0019704 <- factor(data$R0019704,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Strong cybersecurity and incident response")
  )

  data$R0021803[1.0 <= data$R0021803 & data$R0021803 <= 4.0] <- 1.0

  data$R0021803 <- factor(data$R0021803,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Law enforcement and public safety")
  )

  data$R0019703[1.0 <= data$R0019703 & data$R0019703 <= 4.0] <- 1.0

  data$R0019703 <- factor(data$R0019703,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Robust privacy protections")
  )

  data$R0021802[1.0 <= data$R0021802 & data$R0021802 <= 3.0] <- 1.0

  data$R0021802 <- factor(data$R0021802,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Education/children’s technology")
  )

  data$R0019706[1.0 <= data$R0019706 & data$R0019706 <= 97.0] <- 1.0

  data$R0019706 <- factor(data$R0019706,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Something else (please specify)")
  )

  data$R0021801[1.0 <= data$R0021801 & data$R0021801 <= 2.0] <- 1.0

  data$R0021801 <- factor(data$R0021801,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Financial services/credit/insurance")
  )

  data$R0019705[1.0 <= data$R0019705 & data$R0019705 <= 6.0] <- 1.0

  data$R0019705 <- factor(data$R0019705,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Liability for harms")
  )

  data$R0021306[1.0 <= data$R0021306 & data$R0021306 <= 97.0] <- 1.0

  data$R0021306 <- factor(data$R0021306,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Something else (please specify)")
  )

  data$R0021806[1.0 <= data$R0021806 & data$R0021806 <= 7.0] <- 1.0

  data$R0021806 <- factor(data$R0021806,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "National security/military")
  )

  data$R0021805[1.0 <= data$R0021805 & data$R0021805 <= 6.0] <- 1.0

  data$R0021805 <- factor(data$R0021805,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Workplace automation and labor")
  )

  data$R0021301[1.0 <= data$R0021301 & data$R0021301 <= 2.0] <- 1.0

  data$R0021301 <- factor(data$R0021301,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Privacy/data‑protection rules")
  )

  data$R0021305[1.0 <= data$R0021305 & data$R0021305 <= 6.0] <- 1.0

  data$R0021305 <- factor(data$R0021305,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Restrictions on certain uses (e.g., weapons)")
  )

  data$R0021304[1.0 <= data$R0021304 & data$R0021304 <= 5.0] <- 1.0

  data$R0021304 <- factor(data$R0021304,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Sector‑specific rules (health, finance, education, policing)")
  )

  data$R0021303[1.0 <= data$R0021303 & data$R0021303 <= 4.0] <- 1.0

  data$R0021303 <- factor(data$R0021303,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Content controls (e.g., deepfakes)")
  )

  data$R0021302[1.0 <= data$R0021302 & data$R0021302 <= 3.0] <- 1.0

  data$R0021302 <- factor(data$R0021302,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Bias/fairness audits")
  )

  data$R0018001[1.0 <= data$R0018001 & data$R0018001 <= 2.0] <- 1.0

  data$R0018001 <- factor(data$R0018001,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Everyday exposure (e.g., recommendations, autocomplete)")
  )

  data$R0018002[1.0 <= data$R0018002 & data$R0018002 <= 3.0] <- 1.0

  data$R0018002 <- factor(data$R0018002,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Information from news, articles, videos about AI")
  )

  data$R0018003[1.0 <= data$R0018003 & data$R0018003 <= 4.0] <- 1.0

  data$R0018003 <- factor(data$R0018003,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Formal training or coursework")
  )

  data$R0018004[1.0 <= data$R0018004 & data$R0018004 <= 5.0] <- 1.0

  data$R0018004 <- factor(data$R0018004,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Watching others use AI at work or school")
  )

  data$R0018005[1.0 <= data$R0018005 & data$R0018005 <= 97.0] <- 1.0

  data$R0018005 <- factor(data$R0018005,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Other (please specify)")
  )

  data$R0018501[1.0 <= data$R0018501 & data$R0018501 <= 2.0] <- 1.0

  data$R0018501 <- factor(data$R0018501,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Autocomplete or predictive text")
  )

  data$R0018601[1.0 <= data$R0018601 & data$R0018601 <= 2.0] <- 1.0

  data$R0018601 <- factor(data$R0018601,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Voice assistants (e.g., Siri, Alexa)")
  )

  data$R0018502[1.0 <= data$R0018502 & data$R0018502 <= 3.0] <- 1.0

  data$R0018502 <- factor(data$R0018502,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Navigation or route‑planning apps")
  )

  data$R0018602[1.0 <= data$R0018602 & data$R0018602 <= 3.0] <- 1.0

  data$R0018602 <- factor(data$R0018602,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "AI-generated content (e.g., images, text)")
  )

  data$R0018503[1.0 <= data$R0018503 & data$R0018503 <= 4.0] <- 1.0

  data$R0018503 <- factor(data$R0018503,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Recommendation systems (e.g., Netflix/Amazon)")
  )

  data$R0018603[1.0 <= data$R0018603 & data$R0018603 <= 4.0] <- 1.0

  data$R0018603 <- factor(data$R0018603,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Recommendation systems (e.g., Netflix, Amazon)")
  )

  data$R0020803[1.0 <= data$R0020803 & data$R0020803 <= 4.0] <- 1.0

  data$R0020803 <- factor(data$R0020803,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Replacing human jobs")
  )

  data$R0018504[1.0 <= data$R0018504 & data$R0018504 <= 5.0] <- 1.0

  data$R0018504 <- factor(data$R0018504,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Generative AI (text or images)")
  )

  data$R0018604[1.0 <= data$R0018604 & data$R0018604 <= 97.0] <- 1.0

  data$R0018604 <- factor(data$R0018604,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Other (please specify)")
  )

  data$R0020802[1.0 <= data$R0020802 & data$R0020802 <= 3.0] <- 1.0

  data$R0020802 <- factor(data$R0020802,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Teaching children without human oversight")
  )

  data$R0018505[1.0 <= data$R0018505 & data$R0018505 <= 6.0] <- 1.0

  data$R0018505 <- factor(data$R0018505,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Robotics/automation on a production line")
  )

  data$R0020801[1.0 <= data$R0020801 & data$R0020801 <= 2.0] <- 1.0

  data$R0020801 <- factor(data$R0020801,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Diagnosing medical conditions")
  )

  data$R0020804[1.0 <= data$R0020804 & data$R0020804 <= 5.0] <- 1.0

  data$R0020804 <- factor(data$R0020804,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Creating art or music")
  )

  data$R0019702[1.0 <= data$R0019702 & data$R0019702 <= 3.0] <- 1.0

  data$R0019702 <- factor(data$R0019702,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Transparency (explanations of how results are produced)")
  )

  data$R0019701[1.0 <= data$R0019701 & data$R0019701 <= 2.0] <- 1.0

  data$R0019701 <- factor(data$R0019701,
    levels=c(0.0,1.0),
    labels=c("NOT SELECTED",
      "Human oversight on critical decisions")
  )


return(data)
}


varlabels <- c("USERID",
  "KNOWLEDGE ABOUT AI",
  "KNOWLEDGE ABOUT AI CONSIDER: HANDS ON",
  "KNOWLEDGE ABOUT AI CONSIDER: EXPOSURE",
  "KNOWLEDGE ABOUT AI CONSIDER: NEWS",
  "KNOWLEDGE ABOUT AI CONSIDER: FORMAL",
  "KNOWLEDGE ABOUT AI CONSIDER: WATCHING",
  "KNOWLEDGE ABOUT AI CONSIDER:OTHER",
  "COUNT AS AI: SPAM",
  "COUNT AS AI: PREDICTIVE",
  "COUNT AS AI: NAVIGATION",
  "COUNT AS AI: SYSTEMS",
  "COUNT AS AI: GENERATIVE",
  "COUNT AS AI: ROBOTICS",
  "COUNT AS AI: NONE",
  "INTERACTED WITH: CHATBOTS",
  "INTERACTED WITH: VOICE ASSISTANTS",
  "INTERACTED WITH: AI GENERATED CONTENT",
  "INTERACTED WITH: RECOMMENDATION SYSTEMS",
  "INTERACTED WITH: OTHER",
  "INTERACTED WITH: NONE",
  "CONFIDENT EXPLAIN HOW AI WORKS",
  "HOW OFTEN USE AI TOOLS FOR PERSONAL USE",
  "HOW OFTEN USE AI TOOLS FOR WORK",
  "AGREE TODAYS AI TECHNOLOGIES ARE GENERALLY SAFE",
  "MAKES AN AI SYSTEM SAFE: SAFETY AUDITS",
  "MAKES AN AI SYSTEM SAFE: HUMAN OVERSIGHT",
  "MAKES AN AI SYSTEM SAFE: TRANSPARENCY",
  "MAKES AN AI SYSTEM SAFE: PRIVACY PROTECTION",
  "MAKES AN AI SYSTEM SAFE: CYBERSECURITY RESPONSE",
  "MAKES AN AI SYSTEM SAFE: LIABILITY",
  "MAKES AN AI SYSTEM SAFE: SOMETHING ELSE",
  "TRUST AI: HEALTH AND WELLNESS",
  "TRUST AI: FINANCIAL",
  "TRUST AI: K12 EDU TOOLS",
  "TRUST AI: LAW ENFORCEMENT",
  "TRUST AI: OFFICE",
  "AI ERROR AFFECTED YOUR TRUST",
  "AI CHANGED ABILITY TO TELL INFO ONLINE ACCURATE",
  "AGREE AI-GENERATED CONTENT SHOULD CLEARLY LABELED",
  "PRIMARY PURPOSE OF AI",
  "AI SHOULD NOT: LEGAL DECISIONS",
  "AI SHOULD NOT: DIAGNOSE MEDICAL",
  "AI SHOULD NOT: TEACH CHILDREN WITHOUT HUMAN",
  "AI SHOULD NOT: REPLACE HUMAN JOBS",
  "AI SHOULD NOT: CREATE ART",
  "AI SHOULD NOT: NONE",
  "GOVT REGULATION OPINION",
  "REASON CHOSE EARLIER POSITION",
  "THINK AI REGULATION: SAFETY TESTING",
  "THINK AI REGULATION:PRIVACY",
  "THINK AI REGULATION: BIAS",
  "THINK AI REGULATION: CONTENT CONTROLS",
  "THINK AI REGULATION:SECTOR-SPECIFIC",
  "THINK AI REGULATION: RESTRICTIONS ON USES",
  "THINK AI REGULATION: SOMETHING ELSE",
  "NEED REGULATION: HEALTHCARE",
  "NEED REGULATION: FINANCIAL",
  "NEED REGULATION: EDUCATION",
  "NEED REGULATION: LAW ENFORCEMENT",
  "NEED REGULATION: INFORMATION INTEGRITY",
  "NEED REGULATION: WORK AUTOMATION",
  "NEED REGULATION: NATIONAL SECURITY",
  "LEGALLY RESPONSIBLE",
  "TRUST TECH CO DEVELOP SAFE RESPONSIBLE AI TOOLS",
  "GOVT REGULATE TECH CO ENSURE SAFETY PROCEDURES",
  "TECH CO DEVELOP AI HELD LEGALLY RESPONSIBLE HARM",
  "INTERNATIONAL COMMITTEE HELP SET GLOBAL RULES",
  "PRIMARY RESPONSIBLE REGULATING AI",
  "HOW CONFIDENT CURRENT REGULATIONS SUFFICIENT",
  "WORRY AI WILL MAKE HUMANS LESS INTELLIGENT",
  "WORRY AI WILL MAKE HUMANS LESS CREATIVE AND UNIQUE",
  "WORRY PEOPLE SPEND LESS TIME WITH FRIENDS FAMILY",
  "WORRY TECH CO CREATING AI WITHOUT INPUT ORDINARY",
  "WORRY THAT PEOPLE WILL LOSE JOBS BECAUSE OF AI",
  "WORRY DIFFERENCE BETWEEN REALITY AND DEEPFAKES",
  "WORRY AI WILL CREATE MORE BIAS AND DISCRIMINATION",
  "CONCERNS YOU MOST FUTURE OF AI",
  "THINK AI THREAT TO HUMANITY LONGTERM SURVIVAL",
  "FINAL_ENDDATE_DAY",
  "FINAL_ENDDATE_MONTH",
  "FINAL_ENDDATE_YEAR",
  "AGE_RANGE",
  "AGE_RANGE_TEXT",
  "Q8_REDACTED",
  "AI ERROR AFFECTED YOUR TRUST: DESCRIBE_REDACTED",
  "ADDITIONAL INFORMATION_REDACTED",
  "POLITICAL_CHOICE",
  "GENDER",
  "SEXASSIGN",
  "STATE",
  "EDUCATION",
  "ETHNICITY",
  "RACE_WHITE",
  "RACE_BLACK",
  "RACE_ASIAN EAST",
  "RACE_ASIAN SOUTH",
  "RACE_ARAB",
  "RACE_HAWAIIAN",
  "RACE_AM INDIAN",
  "RACE_OTHER",
  "VETERAN"
)

# Use qnames rather than rnums
qnames = function(data) {
  names(data) <- c("GLOBAL_STAMP_USERID_2026",
  "Q1_2026",
  "Q2~000001_2026",
  "Q2~000002_2026",
  "Q2~000003_2026",
  "Q2~000004_2026",
  "Q2~000005_2026",
  "Q2~000097_2026",
  "Q3~000001_2026",
  "Q3~000002_2026",
  "Q3~000003_2026",
  "Q3~000004_2026",
  "Q3~000005_2026",
  "Q3~000006_2026",
  "Q3~000000_2026",
  "Q4~000001_2026",
  "Q4~000002_2026",
  "Q4~000003_2026",
  "Q4~000004_2026",
  "Q4~000097_2026",
  "Q4~000000_2026",
  "Q5_2026",
  "Q6_2026",
  "Q7_2026",
  "Q9_2026",
  "Q10~000001_2026",
  "Q10~000002_2026",
  "Q10~000003_2026",
  "Q10~000004_2026",
  "Q10~000005_2026",
  "Q10~000006_2026",
  "Q10~000097_2026",
  "Q11_15_MATRIX~000011_2026",
  "Q11_15_MATRIX~000012_2026",
  "Q11_15_MATRIX~000013_2026",
  "Q11_15_MATRIX~000014_2026",
  "Q11_15_MATRIX~000015_2026",
  "Q16_2026",
  "Q17_2026",
  "Q18_2026",
  "Q19_2026",
  "Q20~000001_2026",
  "Q20~000002_2026",
  "Q20~000003_2026",
  "Q20~000004_2026",
  "Q20~000005_2026",
  "Q20~000000_2026",
  "Q21_2026",
  "Q22_2026",
  "Q23~000001_2026",
  "Q23~000002_2026",
  "Q23~000003_2026",
  "Q23~000004_2026",
  "Q23~000005_2026",
  "Q23~000006_2026",
  "Q23~000097_2026",
  "Q24~000001_2026",
  "Q24~000002_2026",
  "Q24~000003_2026",
  "Q24~000004_2026",
  "Q24~000005_2026",
  "Q24~000006_2026",
  "Q24~000007_2026",
  "Q25_2026",
  "Q26_29_MATRIX~000026_2026",
  "Q26_29_MATRIX~000027_2026",
  "Q26_29_MATRIX~000028_2026",
  "Q26_29_MATRIX~000029_2026",
  "Q30_2026",
  "Q31_2026",
  "Q32_38_MATRIX~000032_2026",
  "Q32_38_MATRIX~000033_2026",
  "Q32_38_MATRIX~000034_2026",
  "Q32_38_MATRIX~000035_2026",
  "Q32_38_MATRIX~000036_2026",
  "Q32_38_MATRIX~000037_2026",
  "Q32_38_MATRIX~000038_2026",
  "Q39_2026",
  "Q40_2026",
  "FINAL_ENDDATE~D_2026",
  "FINAL_ENDDATE~M_2026",
  "FINAL_ENDDATE~Y_2026",
  "AGE_RANGE_2026",
  "AGE_RANGE_TEXT_2026",
  "Q8_REDACTED_2026",
  "Q16_TXT_REDACTED_2026",
  "Q41_REDACTED_2026",
  "SYMBOL_APP_POLITICAL_CHOICE_2026",
  "SYMBOL_APP_GENDER_2026",
  "SYMBOL_APP_GENDER_SEXASSIGN_2026",
  "SYMBOL_APP_ZIPCODE_STATE_2026",
  "SYMBOL_APP_EDUCATION_2026",
  "SYMBOL_APP_ETHNICITY_2026",
  "SYMBOL_APP_RACE_WHITE_2026",
  "SYMBOL_APP_RACE_BLACK_2026",
  "SYMBOL_APP_RACE_ASIAN_EAST_2026",
  "SYMBOL_APP_RACE_ASIAN_SOUTH_2026",
  "SYMBOL_APP_RACE_ARAB_2026",
  "SYMBOL_APP_RACE_HAWAIIAN_2026",
  "SYMBOL_APP_RACE_INDIAN_2026",
  "SYMBOL_APP_RACE_OTHER_2026",
  "SYMBOL_APP_VETERAN_2026")

return(data)
}

#********************************************************************************************************

# Remove the '#' before the following line to create a data file called "categories" with value labels.
#categories <- vallabels(new_data)

# Remove the '#' before the following lines to rename variables using Qnames instead of Reference Numbers
#new_data <- qnames(new_data)
#categories <- qnames(categories)

# Produce summaries for the raw (uncategorized) data file
summary(new_data)

# Remove the '#' before the following lines to produce summaries for the "categories" data file.
#categories <- vallabels(new_data)
#categories <- vallabels_continuous(new_data)
#summary(categories)

#************************************************************************************************************
