数据分析前先数据清洗,这一步是最耗费时间的过程。
今天总结下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))
newdatanewdata<-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再抽样方法简介
联系客服