Repository navigation
Expand file tree
/
Copy pathPreprocessing.R
More file actions
61 lines (49 loc) · 2.01 KB
/
Copy pathPreprocessing.R
File metadata and controls
61 lines (49 loc) · 2.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#load the packages
options(warn=-1)
library('caret')
library('lattice')
library('ggplot2')
library('naniar')
library('ROSE')
library('rpart')
cervical<-read.csv(file="C:\\Users\\hamza\\Desktop\\CourseProject\\risk_factors_cervical_cancer.csv",sep=',',header=TRUE)
#removing 2 attributes that are irrelevant
cervical<-subset(cervical,select= -c(STDs..Time.since.first.diagnosis,STDs..Time.since.last.diagnosis))
print("AFTER REMOVING IRRELEVANT COLUMNS")
print(str(cervical))
#converting the target variables into factors
target<-c("Hinselmann","Schiller","Citology","Biopsy")
for(x in target){
cervical[,x]=as.factor(cervical[,x])}
print(str(cervical))
#converting the "?" into NA
na_string=c("?"," ?"," ? ","? ")
cervical<- cervical %>% replace_with_na_all(condition = ~. %in% na_string) #gives us a tibble
#convert tibble back to dataframe
cervical<-as.data.frame(cervical)
#converting the attributes to numerical and bool type
intData<-c("Number.of.sexual.partners","First.sexual.intercourse","Num.of.pregnancies","STDs..number.")
boolData<-c("Smokes","Hormonal.Contraceptives","IUD","STDs","STDs.condylomatosis","STDs.cervical.condylomatosis","STDs.vaginal.condylomatosis","STDs.vulvo.perineal.condylomatosis","STDs.syphilis","STDs.pelvic.inflammatory.disease","STDs.genital.herpes","STDs.molluscum.contagiosum","STDs.AIDS","STDs.HIV","STDs.Hepatitis.B","STDs.HPV","Dx.Cancer","Dx.CIN","Dx.HPV","Dx")
realData<-c("Smokes..years.","Smokes..packs.year.","Hormonal.Contraceptives..years.","IUD..years.")
for(x in intData){
cervical[,x]=as.integer(cervical[,x])
}
for(x in boolData){
cervical[,x]= as.factor(cervical[,x])
}
for(x in realData){
cervical[,x]=as.numeric(cervical[,x])
}
print("AFTER CONVERSION INTO APPROPRIATE CATEGORY")
print(str(cervical))
View(cervical)
#check for na values
colSums(is.na(cervical))
na_vec<-(which(!complete.cases(cervical)))
print(na_vec)
#discard na values
cervical_no_na<-cervical[-na_vec,]
print(str(cervical_no_na))
View(cervical_no_na)
#check if any na exists
colSums(is.na(cervical_no_na))