R语⾔--数据处理案例(标准化、合并、排序等)1 数据处理案例
(1)数据输⼊房屋出租合同
student<-c("John Davis","Angla williams","Bullwink Moo",
"David Jones","Janice Markhammer","cheryl Cushing",
"Revenen Ytzrhak","Greg Knox","Joel England",
"Mary Rayburn")
math<-c(502,600,412,358,495,512,410,625,573,522)
science<-c(95,99,80,82,75,85,80,95,89,86)
english<-c(25,22,18,15,20,28,15,30,27,18)
roster<-data.frame(student,math,science,english,stringsAsFactors = F)
解释:roster是数据框名字,stringsAsFactors = F 设置字符串不拆开,即名字中间可以有空格
(2)限定⼩数位数
options(digits = 2) #有效数最⼩保留2位
(3)成绩标准化 scale()
x<-scale(roster[,2:4])
解释:标准化之后,让所有的成绩具有可⽐性
歹怎么读(4)求平均分去台湾需要什么证件>向隅而泣的意思
score<-apply(x,1,mean)
角速度的单位解释:按⾏求均值:apply() ,参数设置为1
roster<-cbind(roster,score)
解释:把求出的平均分这⼀列合并到原来的表roster中,由于不⽤主键,可以直接使⽤cbind()来合并
有雨的诗句
(5)求分位数
y<-quantile(roster$score,c(0.8,0.6,0.4,0.2))
解释:求四个分位点,分别在0.8,0.6,0.4,0.2处
(6)按分位数给成绩评定等级
roster$grade[score>=y[1]]<-"A"
roster$grade[score<y[1] & score>=y[2]] <-"B"
roster$grade[score<y[2] & score>=y[3]] <-"C"
roster$grade[score<y[3] & score>=y[4]] <-"D"
roster$grade[score<y[4]] <-"F"
解释:新增加⼀列grade,根据标准化之后的平均分和四个分位点来划分等级
(7)拆分first name和last name
三从一大训练原则name<-strsplit((roster$student)," ")
解释:拆分字符串使⽤strsplit,第⼀个参数roster$student是要拆分的对象,第⼆个参数(空格“ ”)是指定按照什么来拆分
(8)把拆分后的名字放回数据集
firstname<-sapply(name, "[",1) #提取第⼀个对象
lastname<-sapply(name, "[",2) #提取第⼆个对象
单反可以拍视频吗解释:拆分之后⽣成的是⼀个列表,可以使⽤函数sapply来提取拆分后的名字,”[” 表⽰要提取⼀个对象(元素),1代表提取第⼀个对象roster<-cbind(firstname,lastname,roster[,-1])
解释:cbind()是合并对象的,roster[,-1]意思是保留⾏并且删掉第1列(负号代表去除)
(9)按lastname排序
roster<-roster[order(lastname,firstname),]
解释:order()排序函数,order(lastname,firstname)先按lastname,再按firstname排序, , 逗号前⾯是按⾏排⾏排序,逗号后⾯是按列(因为姓⽒和名不能拆开,所以按⾏排序)