The ecoli data can be obtained here.
>setwd("C:/Users/joyis/OneDrive/Documents") # Working directory
>Ecoli_data<-read.csv("ecoli.csv", header = FALSE)
>str(Ecoli_data)
'data.frame': 336 obs. of 9 variables:
$ V1: chr "AAT_ECOLI" "ACEA_ECOLI" "ACEK_ECOLI" "ACKA_ECOLI" …
$ V2: num 0.49 0.07 0.56 0.59 0.23 0.67 0.29 0.21 0.2 0.42 …
$ V3: num 0.29 0.4 0.4 0.49 0.32 0.39 0.28 0.34 0.44 0.4 …
$ V4: num 0.48 0.48 0.48 0.48 0.48 0.48 0.48 0.48 0.48 0.48 …
$ V5: num 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 …
$ V6: num 0.56 0.54 0.49 0.52 0.55 0.36 0.44 0.51 0.46 0.56 …
$ V7: num 0.24 0.35 0.37 0.45 0.25 0.38 0.23 0.28 0.51 0.18 …
$ V8: num 0.35 0.44 0.46 0.36 0.35 0.46 0.34 0.39 0.57 0.3 …
$ V9: chr "cp" "cp" "cp" "cp" …
>colnames(Ecoli_data)<-c('Sequence_Name', 'MCG', 'GVH','LIP','CHG','AAC','ALM1','ALM2','Class_Distr')
>str(Ecoli_data)
'data.frame': 336 obs. of 9 variables:
$ Sequence_Name: chr "AAT_ECOLI" "ACEA_ECOLI" "ACEK_ECOLI" "ACKA_ECOLI" …
$ MCG : num 0.49 0.07 0.56 0.59 0.23 0.67 0.29 0.21 0.2 0.42 …
$ GVH : num 0.29 0.4 0.4 0.49 0.32 0.39 0.28 0.34 0.44 0.4 …
$ LIP : num 0.48 0.48 0.48 0.48 0.48 0.48 0.48 0.48 0.48 0.48 …
$ CHG : num 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 …
$ AAC : num 0.56 0.54 0.49 0.52 0.55 0.36 0.44 0.51 0.46 0.56 …
$ ALM1 : num 0.24 0.35 0.37 0.45 0.25 0.38 0.23 0.28 0.51 0.18 …
$ ALM2 : num 0.35 0.44 0.46 0.36 0.35 0.46 0.34 0.39 0.57 0.3 …
$ Class_Distr : chr "cp" "cp" "cp" "cp" …
>summary(Ecoli_data)
Sequence_Name MCG GVH LIP
Length:336 Min. :0.0000 Min. :0.16 Min. :0.4800
Class :character 1st Qu.:0.3400 1st Qu.:0.40 1st Qu.:0.4800
Mode :character Median :0.5000 Median :0.47 Median :0.4800
Mean :0.5001 Mean :0.50 Mean :0.4955
3rd Qu.:0.6625 3rd Qu.:0.57 3rd Qu.:0.4800
Max. :0.8900 Max. :1.00 Max. :1.0000
CHG AAC ALM1 ALM2
Min. :0.5000 Min. :0.000 Min. :0.0300 Min. :0.0000
1st Qu.:0.5000 1st Qu.:0.420 1st Qu.:0.3300 1st Qu.:0.3500
Median :0.5000 Median :0.495 Median :0.4550 Median :0.4300
Mean :0.5015 Mean :0.500 Mean :0.5002 Mean :0.4997
3rd Qu.:0.5000 3rd Qu.:0.570 3rd Qu.:0.7100 3rd Qu.:0.7100
Max. :1.0000 Max. :0.880 Max. :1.0000 Max. :0.9900
Class_Distr
Length:336
Class :character
Mode :character
>head(Ecoli_data)
Sequence_Name MCG GVH LIP CHG AAC ALM1 ALM2Class_Distr
1 AAT_ECOLI 0.49 0.29 0.48 0.5 0.56 0.24 0.35 cp
2 ACEA_ECOLI 0.07 0.40 0.48 0.5 0.54 0.35 0.44 cp
3 ACEK_ECOLI 0.56 0.40 0.48 0.5 0.49 0.37 0.46 cp
4 ACKA_ECOLI 0.59 0.49 0.48 0.5 0.52 0.45 0.36 cp
5 ADI_ECOLI 0.23 0.32 0.48 0.5 0.55 0.25 0.35 cp
6 ALKH_ECOLI 0.67 0.39 0.48 0.5 0.36 0.38 0.46 cp
>tail(Ecoli_data)
Sequence_Name MCG GVH LIP CHG AAC ALM1 ALM2Class_Distr
331 TORA_ECOLI 0.43 0.59 0.48 0.5 0.52 0.49 0.56 pp
332 TREA_ECOLI 0.74 0.56 0.48 0.5 0.47 0.68 0.30 pp
333 UGPB_ECOLI 0.71 0.57 0.48 0.5 0.48 0.35 0.32 pp
334 USHA_ECOLI 0.61 0.60 0.48 0.5 0.44 0.39 0.38 pp
335 XYLF_ECOLI 0.59 0.61 0.48 0.5 0.42 0.42 0.37 pp
336 YTFQ_ECOLI 0.74 0.74 0.48 0.5 0.31 0.53 0.52 pp
>print(DT) #Gives a view of the first/last few rows of the data as a data table
MCG GVH LIP CHG AAC ALM1 ALM2 Class_Distr
1: 0.49 0.29 0.48 0.5 0.56 0.24 0.35 cp
2: 0.07 0.40 0.48 0.5 0.54 0.35 0.44 cp
3: 0.56 0.40 0.48 0.5 0.49 0.37 0.46 cp
4: 0.59 0.49 0.48 0.5 0.52 0.45 0.36 cp
5: 0.23 0.32 0.48 0.5 0.55 0.25 0.35 cp 332: 0.74 0.56 0.48 0.5 0.47 0.68 0.30 pp
333: 0.71 0.57 0.48 0.5 0.48 0.35 0.32 pp
334: 0.61 0.60 0.48 0.5 0.44 0.39 0.38 pp
335: 0.59 0.61 0.48 0.5 0.42 0.42 0.37 pp
336: 0.74 0.74 0.48 0.5 0.31 0.53 0.52 pp
>DT[,mean(MCG), by=Class_Distr]# Computes the mean of the class distributions
Class_Distr V1
1: cp 0.3635664
2: im 0.4784416
3: imS 0.7400000
4: imL 0.7250000
5: imU 0.7260000
6: om 0.6725000
7: omL 0.6980000
8: pp 0.6521154
>DT[,mean(MCG), by=substring(Class_Distr,1,1)]
substring V1
1: c 0.3635664
2: i 0.5618966
3: o 0.6776000
4: p 0.6521154
>DT[,.(MCG_new=median(MCG), GVH_new=median(GVH),LIP_new=median(LIP), CHG_new=median(CHG),AAC_new=median(AAC),ALM1_new= median(ALM1),ALM2_new=median(ALM2)),by=Class_Distr][order(-Class_Distr)] #Outputs the medians by Class Distributions in descending order
Class_Distr MCG_new GVH_new LIP_new CHG_new AAC_new ALM1_new ALM2_new
1: pp 0.670 0.71 0.48 0.50 0.440 0.460 0.375
2: omL 0.680 0.49 1.00 0.50 0.540 0.560 0.280
3: om 0.675 0.73 0.48 0.50 0.745 0.450 0.290
4: imU 0.760 0.45 0.48 0.50 0.570 0.750 0.760
5: imS 0.740 0.51 0.48 0.50 0.535 0.640 0.570
6: imL 0.725 0.47 1.00 0.75 0.455 0.645 0.570
7: im 0.490 0.49 0.48 0.50 0.550 0.760 0.780
8: cp 0.360 0.41 0.48 0.50 0.450 0.310 0.400
>DT[,.(MCG=mean(MCG), GVH=mean(GVH),LIP=mean(LIP), CHG=mean(CHG),AAC=mean(AAC),ALM1= mean(ALM1),ALM2=mean(ALM2)),by=Class_Distr][order(Class_Distr)] #Outputs the means by Class Distributions in ascending order
Class_Distr MCG GVH LIP CHG AAC ALM1 ALM2
1: cp 0.3635664 0.4097203 0.4800000 0.50 0.4544755 0.3126573 0.3952448
2: im 0.4784416 0.4966234 0.4867532 0.50 0.5361039 0.7575325 0.7303896
3: imL 0.7250000 0.4700000 1.0000000 0.75 0.4550000 0.6450000 0.5700000
4: imS 0.7400000 0.5100000 0.4800000 0.50 0.5350000 0.6400000 0.5700000
5: imU 0.7260000 0.4588571 0.4948571 0.50 0.5588571 0.7440000 0.7480000
6: om 0.6725000 0.7100000 0.5060000 0.50 0.7390000 0.4625000 0.3055000
7: omL 0.6980000 0.5120000 1.0000000 0.50 0.5420000 0.5640000 0.2220000
8: pp 0.6521154 0.6998077 0.4800000 0.50 0.4367308 0.4680769 0.3744231
>DT$Sequence_Name<-NULL # Removing the Sequence_Name column
>head(DT)
MCG GVH LIP CHG AAC ALM1 ALM2 Class_Distr
1: 0.49 0.29 0.48 0.5 0.56 0.24 0.35 cp
2: 0.07 0.40 0.48 0.5 0.54 0.35 0.44 cp
3: 0.56 0.40 0.48 0.5 0.49 0.37 0.46 cp
4: 0.59 0.49 0.48 0.5 0.52 0.45 0.36 cp
5: 0.23 0.32 0.48 0.5 0.55 0.25 0.35 cp
6: 0.67 0.39 0.48 0.5 0.36 0.38 0.46 cp
>DT[,lapply(.SD,mean), by= Class_Distr] # Mean for each column arranged by Class_Distr
Class_Distr MCG GVH LIP CHG AAC ALM1 ALM2
1: cp 0.3635664 0.4097203 0.4800000 0.50 0.4544755 0.3126573 0.3952448
2: im 0.4784416 0.4966234 0.4867532 0.50 0.5361039 0.7575325 0.7303896
3: imS 0.7400000 0.5100000 0.4800000 0.50 0.5350000 0.6400000 0.5700000
4: imL 0.7250000 0.4700000 1.0000000 0.75 0.4550000 0.6450000 0.5700000
5: imU 0.7260000 0.4588571 0.4948571 0.50 0.5588571 0.7440000 0.7480000
6: om 0.6725000 0.7100000 0.5060000 0.50 0.7390000 0.4625000 0.3055000
7: omL 0.6980000 0.5120000 1.0000000 0.50 0.5420000 0.5640000 0.2220000
8: pp 0.6521154 0.6998077 0.4800000 0.50 0.4367308 0.4680769 0.3744231
>DT[,lapply(.SD,max), by= Class_Distr]# Max for each column arranged by Class_Distr
Class_Distr MCG GVH LIP CHG AAC ALM1 ALM2
1: cp 0.67 0.76 0.48 0.5 0.73 0.55 0.61
2: im 0.89 0.75 1.00 0.5 0.74 1.00 0.99
3: imS 0.85 0.53 0.48 0.5 0.54 0.76 0.79
4: imL 0.75 0.55 1.00 1.0 0.51 0.82 0.84
5: imU 0.88 0.71 1.00 0.5 0.75 0.92 0.90
6: om 0.78 0.90 1.00 0.5 0.88 0.59 0.52
7: omL 0.77 0.57 1.00 0.5 0.66 0.59 0.36
8: pp 0.76 1.00 0.48 0.5 0.63 0.84 0.85
>DT1<-DT[Class_Distr=='cp'] # Includes Class_Distr which equal 'cp'
>head(DT1)
MCG GVH LIP CHG AAC ALM1 ALM2 Class_Distr
1: 0.49 0.29 0.48 0.5 0.56 0.24 0.35 cp
2: 0.07 0.40 0.48 0.5 0.54 0.35 0.44 cp
3: 0.56 0.40 0.48 0.5 0.49 0.37 0.46 cp
4: 0.59 0.49 0.48 0.5 0.52 0.45 0.36 cp
5: 0.23 0.32 0.48 0.5 0.55 0.25 0.35 cp
6: 0.67 0.39 0.48 0.5 0.36 0.38 0.46 cp
>DT2<-DT[Class_Distr%in% c("imL","imS")]
>head(DT2)
MCG GVH LIP CHG AAC ALM1 ALM2 Class_Distr
1: 0.85 0.53 0.48 0.5 0.53 0.52 0.35 imS
2: 0.63 0.49 0.48 0.5 0.54 0.76 0.79 imS
3: 0.75 0.55 1.00 1.0 0.40 0.47 0.30 imL
4: 0.70 0.39 1.00 0.5 0.51 0.82 0.84 imL
>tail(DT2)
MCG GVH LIP CHG AAC ALM1 ALM2 Class_Distr
1: 0.85 0.53 0.48 0.5 0.53 0.52 0.35 imS
2: 0.63 0.49 0.48 0.5 0.54 0.76 0.79 imS
3: 0.75 0.55 1.00 1.0 0.40 0.47 0.30 imL
4: 0.70 0.39 1.00 0.5 0.51 0.82 0.84 imL