数据分析前先数据清洗,这一步是最耗费时间的过程。 今天总结下R语言数据合并和清洗的部分语句。 (1)横向合并(按行合并): merge语句 例:有两个数据集,student1和student2,想讲两个数据集合并起来,我们就用到merge语句 > student1<> > student1 ID name 1 1 Jim 2 2 Tony 3 3 Lisa 4 4 Tom > student2<> > student2 ID score 1 1 89 2 2 22 3 3 78 4 4 78
观察数据集可知,数据集中有相同的变量“ID”,可以按照这个变量将两个数据集匹配合并。 > total_student<> > total_student ID name score 1 1 Jim 89 2 2 Tony 22 3 3 Lisa 78 4 4 Tom 78
合并后的结果见上图。
另外一个函数是cbind (2)纵向合并(按列合并) > student1<> > student1 ID name 1 1 Jame 2 2 Kevin 3 3 Sunny > student2<> > student2 ID name 1 4 Sun 2 5 Frame 3 6 Eric
数据集是ID不同,按照ID纵向合并:
> total<>rbind(student1,student2) > total ID name 1 1 Jame 2 2 Kevin 3 3 Sunny 4 4 Sun 5 5 Frame 6 6 Eric
(3)选取行数 manager<> date<-c('10>-c('10> country<> gender<> age<> q1<> q2<> q3<> q4<> q5<> leadership<> leadership$agecat[leadership$age>75]<-'elder' #是将年龄大于75岁的选出来赋值为="">-'elder'> leadership$agecat[leadership$age>=55 &leadership$age<><-'middle aged'="">-'middle>#是将年龄大于55岁小于75岁的人选出来赋值为 “Middle Aged” leadership$agecat[leadership$age<><> #是将年龄大于55岁小于75岁的人选出来赋值为 “Young” newdata<>
(4)#剔除变量 %in% manager<> date<-c('10>-c('10> country<> gender<> age<> q1<> q2<> q3<> q4<> q5<> leadership<> leadership$agecat[leadership$age>75]<> leadership$agecat[leadership$age>=55 &leadership$age<><-'middle>-'middle> leadership$agecat[leadership$age<><> myvars<-names(leadership) %in%="">-names(leadership)> newdata<> newdata mydata<> mydata
(5)#选取1:3行 newdata<> newdata
(6)#选取指定条件数据 which条件 newdata<-leadership[which(leadership$gender=='f' &="" leadership$age="">30),] newdata-leadership[which(leadership$gender=='f'>
(7)#选取时间which leadership$date<-as.date(leadership$date,'%m>-as.date(leadership$date,'%m> startdate<> enddate<> newdata<-leadership[which(leadership$date>=startdate & leadership$date<> newdata-leadership[which(leadership$date>
(8)#subset函数应用 newdata<-subset(leadership,age>=35|age<> -subset(leadership,age> select=c(manager,date,country,gender,age,q1,q2,q3,q4,q5)) newdata newdata<-subset(leadership,age>=35 & gender=='F', -subset(leadership,age> select=manager:q5) newdata
(9)#排序 manager<> date<-c('10>-c('10> country<> gender<> age<> q1<> q2<> q3<> q4<> q5<> leadership<> leadership$agecat[leadership$age>75]<> leadership$agecat[leadership$age>=55 &leadership$age<><-'middle>-'middle> leadership$agecat[leadership$age<><> leadership$date<-as.date(leadership$date,'%m>-as.date(leadership$date,'%m> newdata<> newdata
(10)#升序 attach(leadership) newdata<> detach(leadership) newdata (11)#降序 attach(leadership) newdata<> detach(leadership) newdata
本公众号精彩历史文章: 04:如何在R软件中求一致性指数( Harrell'concordance index:C-index)? 05:Nomogram 绘制原理及R&SAS实现. 06 : Lasso方法简要介绍及其在回归分析中的应用 07 : 最优模型选择中的交叉验证(Cross validation)方法 08 : 用R语言进行分位数回归(Quantile Regression) 09 : 样本数据中异常值(Outliers)检测方法及SPSS & R实现 10 : 原始数据中几类缺失值(Missing Data)的SPSS及R处理方法 11 : [Survival analysis] Kaplan-Meier法之SPSS实现 12 : [Survival analysis] COX比例风险回归模型在SPSS中的实现 13 : 用R绘制地图:以疾病流行趋势为例 14 : 数据挖掘方法:聚类分析简要介绍 及SPSS&R实现 15 : 医学研究中的Logistic回归分析及R实现 16 : 常用的非参数检验(Nonparametric Tests)总结 17 : 高中生都能看懂的最小二乘法原理 18 : R语言中可实现的常用统计假设检验总结(侧重时间序列) 19 : 如何根据样本例数、均数、标准差进行T-Test和ANOVA 20 : 统计学中自由度的理解和应用 21 : ROC和AUC介绍以及如何计算AUC 22 : 支持向量机SVM介绍及R实现 23 : SPSS如何做主成分分析? 24 : Bootstrap再抽样方法简介
|