1
0

uploaded r code for interpolation

This commit is contained in:
dtayl23 2025-02-27 20:16:48 +00:00
parent cf735b845b
commit 618b6b6ab7
2 changed files with 77 additions and 0 deletions

View File

@ -0,0 +1,58 @@
setwd("~/Desktop/cdsc/health literacy/")
best = read.csv("Best_Data.csv")
# subsetting desired years
years = c("2007", "2010", "2013", "2016")
best_subsetted = best[best$Year %in% years,]
# creating empty rows for interpolation + interpolating the mean (stigma) scores
expand = function(df){
total_years = seq(min(df$Year), max(df$Year))
expanded_df = data.frame(Year = total_years)
unique_diseases = unique(df$Reconciled_Name)
expanded_data = data.frame()
for (disease in unique_diseases){
disease_data = df[df$Reconciled_Name == disease, ]
expanded_disease_data = merge(expanded_df, disease_data, by = "Year", all.x = TRUE)
expanded_disease_data$Reconciled_Name = disease
expanded_data = rbind(expanded_data, expanded_disease_data)
}
for (disease in unique_diseases) {
disease_data = expanded_data[expanded_data$Reconciled_Name == disease, ]
known_year = which(!is.na(disease_data$mean))
# sort known_year it by year
for (i in 1:(length(known_year) - 1)) {
before_year = known_year[i]
after_year = known_year[i + 1]
if (is.na(after_year)){
print("break")
break
}
start_mean = disease_data$mean[before_year]
end_mean = disease_data$mean[after_year]
num_missing = after_year - before_year - 1
print(after_year)
if (num_missing > 0) {
increment = (end_mean - start_mean) / (num_missing + 1)
for (j in 1:num_missing) {
disease_data$mean[before_year + j] = start_mean + increment * j
}
}
}
expanded_data[expanded_data$Reconciled_Name == disease, ] = disease_data
}
return(expanded_data)
}
best_interpolated = expand(best_subsetted)

19
dataset/map_and_merge.R Normal file
View File

@ -0,0 +1,19 @@
setwd("~/Desktop/cdsc/health literacy/")
mapping = read.delim("Mapping - Sheet1.tsv")
mapping <- mapping[,colnames(mapping) != "Notes"]
IHME = read.csv("IHME_Data.csv")
best <- read.csv("Best_Data.csv")
# first, create the list of all the one-to-ones
d <- merge(best, mapping[!is.na(mapping$Mapping_Type) & mapping$Mapping_Type == "one-to-one",], by.x="Reconciled_Name", by.y="Best_Disease_Name", all=TRUE)
# now merge the imhe data on
d <- merge(d, IHME[IHME$measure_name == "DALYs (Disability-Adjusted Life Years)",
c("cause_id", "measure_name", "year", "val")],
by.x=c("IHME_Cause_ID", "Year"),
by.y=c("cause_id", "year"))
# next, handle the one-to-manys but summing up