for(i in 1:length(hotdogs$Country)){
if(hotdogs$Country[i]=="United States"){
hotdogs$Country[i]<- c("#821122")}
else{hotdogs$Country[i] <- c("#cccccc")}
}
如果数据量比较大的话这样比较耗时间,建议用:
Country<- hotdogs$Countryindex<- Country=="United States"
Country[index]<- "#821122"
index1<-Country!="United States"
Country[index1]<- "#cccccc"
print(Country)
虽然比较简单,但是速度较快。。。
你先写一个函数,然后在R的界面加载新建一个脚本:
fun<-function(x){
if(x>=0 &x<=3) y=3*x+2
else y=2*x-0.5*x^2
y
}
保存为fun.R
然后在R界面里
>source("fun.R")
>x<-seq(0,6,0.01) 每隔0.01取一个点
>y<-fun(x)
>plot(x,y)
cal_metrics <- function(label, pred){
roc.p=pROC::roc(label, pred,ci =T)
if (roc.p$auc>0.5){
cutoff=roc.p$thresholds[which.max(roc.p$sensitivities+roc.p$specificities)]
sensitivity=roc.p$sensitivities[which.max(roc.p$sensitivities+roc.p$specificities)]
specificity=roc.p$specificities[which.max(roc.p$sensitivities+roc.p$specificities)]
ci = roc.p$ci
df=data.frame(type='positive classification',
auc=round(roc.p$auc,3),cutoff=cutoff,
sensitivity=sensitivity,specificity=specificity,ci_lower = ci[1],ci_upper=ci[3])
return(df)
}
else{
cutoff=roc.p$thresholds[which.min(roc.p$sensitivities+roc.p$specificities)]
sensitivity=roc.p$sensitivities[which.min(roc.p$sensitivities+roc.p$specificities)]
specificity=roc.p$specificities[which.min(roc.p$sensitivities+roc.p$specificities)]
ci = roc.p$ci
df=data.frame(type='negative classification',
auc=1-round(roc.p$auc,3),cutoff=cutoff,
sensitivity=1-sensitivity,specificity=1-specificity,ci_lower = ci[1],ci_upper=ci[3])
return(df)
}
}