Hi,
I would like to sort my age group (<40, 40-49, 50-59, 60-69, >=70) in this order, after sorting it based on project_code. Here is the code i tried:
library(readxl)
ClinData <- read_excel("donor.xls")
# Group the age
ClinData$Age_Group <- cut(ClinData$donor_age_at_diagnosis, c(0, 39, 49, 59, 69,
100),
labels=c("<40", "40-49", "50-59", "60-69", ">=70"))
ClinData$donor_age_at_diagnosis <- NULL
ClinData$Age_Group <- as.character(ClinData$Age_Group)
names(ClinData)[names(ClinData) == "Age_Group"] <- "Age"
# Clean and sort Clinical data
sortClinData <- ClinData[order(ClinData$project_code,
ClinData$Age,
ClinData$donor_vital_status,
ClinData$disease_status_last_followup), ]
However, it only arrange in the desired order( as shown above) for the first project_code, from second project_onwards, it arrange with such order (<40, >=70, 40-49, 50-59, 60-69) which i believed is due to arrangement of relational operators but I am confused why the arrangement only works for the first group?
The original data can be obtained by choosing "Download Donor Data" above the "Donor" table after clicking this link: https://dcc.icgc.org/search?files={"from":1}&filters={"donor":{"projectId":{"is":["HNSC-US","ORCA-IN","THCA-SA","THCA-US"]},"primarySite":{"is":["Head%20and%20neck"]}}}&donors={"from":1}
I tried this method but it doesn't work as it make changes to the grouping data
library(readxl)
ClinData <- read_excel("donor.xls")
# Group the age
ClinData$Age_Group <- cut(ClinData$donor_age_at_diagnosis, c(0, 39, 49, 59, 69,
100),
labels=c("<40", "40-49", "50-59", "60-69", ">=70"))
ClinData$donor_age_at_diagnosis <- NULL
ClinData$Age_Group <- as.character(ClinData$Age_Group)
names(ClinData)[names(ClinData) == "Age_Group"] <- "Age"
## Arrange age group by logical factor
library(tidyverse)
library(forcats)
age_levels <- c("<40", "40-49", "50-59", "60-69", ">=70")
age1 <- factor(ClinData$Age, levels = age_levels)
ClinData$Age <- (sort(age1))
# Clean and sort Clinical data
sortClinData <- ClinData[order(ClinData$project_code,
ClinData$Age,
ClinData$donor_vital_status,
ClinData$disease_status_last_followup), ]
Welcome any suggestions or comments. Thank you!