1. R语言运行效率分析(5)
2020-02-04 本文已影响0人
灭绝老衲
方法5: 采用 which 语句
1: 自定义函数
# digital was translated into englishname
Month_name_which<-function(month){
Month_name<-month
Month_name[(which(Month_name==1))]<-"Jan"
Month_name[(which(Month_name==2))]<-"Feb"
Month_name[(which(Month_name==3))]<-"Mar"
Month_name[(which(Month_name==4))]<-"Apr"
Month_name[(which(Month_name==5))]<-"May"
Month_name[(which(Month_name==6))]<-"Jun"
Month_name[(which(Month_name==7))]<-"Jul"
Month_name[(which(Month_name==8))]<-"Aug"
Month_name[(which(Month_name==9))]<-"Sep"
Month_name[(which(Month_name==10))]<-"Oct"
Month_name[(which(Month_name==11))]<-"Nov"
Month_name[(which(Month_name==12))]<-"Dec"
return(Month_name)
}
Season_name_which<-function(month){
Season_name<-month
Season_name[which(Season_name %in% c(12,1,2))]<-"Winter"
Season_name[which(Season_name %in% c(3,4,5))]<-"Spring"
Season_name[which(Season_name %in% c(6,7,8))]<-"Summer"
Season_name[which(Season_name %in% c(9,10,11))]<-"Autumn"
return(Season_name)
}
result_which<-function(month){
Month_name_which<-Month_name_which(month)# months' names
Season_name_whichh<-Season_name_which(month) #seasons' names
df<-data.frame(month,Month_name_which,Season_name_whichh)
return(df)
}
2: 调用函数进行运算
month<-month_digital(10)
microbenchmark(Month_name_which(month))
microbenchmark(Season_name_which(month))
microbenchmark(result_which(month))
Unit: microseconds
expr min lq mean median uq max neval
Month_name_which(month) 71.668 73.2195 393.5091 74.426 76.0145 31879.35 100
Unit: microseconds
expr min lq mean median uq max neval
Season_name_which(month) 42.812 43.9625 157.1115 44.655 45.477 11199.92 100
Unit: microseconds
expr min lq mean median uq max neval
result_which(month) 771.61 786.8795 886.8605 800.243 829.8675 4943.644 100
(未完!待续……)