看谁能简洁些的
- data <- read.table(text="var1
- AB
- AB
- AA
- BB
- AA
- BB
- AB
- AA
- AA
- AB
- BB",header=T,stringsAsFactors=F)
- #把第一列字母分开,判断是否相同
- data$var1<-as.character(data$var1)
- dat.sp<-matrix(unlist(strsplit(data$var1,split="")),ncol=2,byrow=T)
- dat.1<-dat.sp[,1]!=dat.sp[,2]#逻辑值,字母是否相同
- var2<-NULL
- var2[dat.sp[,1]!=dat.sp[,2]]=1#字母不同时为1
- var2[data$var1==names(which.max(table(data[!dat.1,])))]=0#当字母相同,且频数最大时为0
- var2[dat.sp[,1]==dat.sp[,2]&data$var1!=names(which.max(table(data[!dat.1,])))]=2#当字母相同,频数非最大时为2
- new.dat <-cbind(var1=data$var1,var2)
- as.data.frame(new.dat)



雷达卡




京公网安备 11010802022788号







