1 数据导入
数据常用格式.csv/.txt/.xls/.json/.xml。
R语言提供相应的函数和库实现对这些数据格式的导入。
现已导入.csv格式和以tab分隔的.txt格式为例
# 读.csv格式
data1<-read.csv(file='C:/abc.csv',header=TRUE,sep=',')
# 读以tab分隔的.txt格式
data2<-read.csv(file='C:/abc.txt',header=TRUE,sep='\t')
2 数据类型变换
数据类型变换包括数据类型测试和数据类型之间的变换。
数据类型测试采用is.xyz系列函数,该函数测试是否为某一种数据类型,返回值是逻辑类型,即TRUE和FALSE。
数据类型变换采用as.xyz系列函数,把某一种数据类型变换到另一种数据类型。
例如:
is.numeric(),is.character(),is.vector(),is.matrix(),is.data.frame()
as.numeric(),as.character(),as.vector(),as.matrix(),as.data.frame()
3 数据集变换
library(reshape)
data3<-melt(mydata,id=c("id","time"))4 数据排序
利用order函数对单一变量或者多个变量进行排序(升序或者降序),返回具有排序功能的索引位置。
# sort by var1
data4<-old[order(var1),]
# sort by var1 and var2 (descending)
data5<-old[order(var1,-var2),]
5 数据可视化
利用R语言做数据可视简单和高效。
R语言画直方图
set.seed(1234)
score<-rnorm(n=1000,m=80,sd=20)
hist(score)
在直方图上面添加密度曲线
hist(score,
freq=FALSE,
xlab="Score",
main="Distribution of score",
col="lightgreen",
xlim=c(0,150),
ylim=c(0,0.02))
curve(dnorm(x,
mean=mean(score),
sd=sd(score)),
add=TRUE,
col="darkblue",
lwd=2)
6 列联表
列联表是理解各类分布的最基本和最有效的方式。
单变量列联表
多变量列联表
参考代码
library(gmodels)
CrossTable(mydata$myrowvar,mydata$mycolvar)
7 数据抽样
利用sample函数实现数据抽样
从数据集中不放回地随机抽取100个样本
参考代码:
mysample<-mydata[sample(1:nrow(mydata),100,replace=FALSE),]
8 数据去重
利用unique函数去掉向量中的重复值
set.seed(1234)
x<-round(rnorm(20,10,5))
x
unique(x)
结果如下
9 数据汇总
使用apply系列函数,实现汇总
10 缺失值识别和处理
使用is.na函数识别缺失值,采用均值、中位数、众数、插补法等方法对确实值处理。
y<-c(4,5,6,NA)
is.na(y)
y[is.na(y)]<-mean(y,na.rm=TRUE)
y
11 异常值识别和处理
异常值识别-异常值定位-异常值处理
异常值识别方法:盒箱图和简单统计量
异常值处理方法:剔除法/修复法
12 数据合并
利用merge函数或者rbind函数或者sqldf包基于数据库的连接操作
# merge two data frames by ID
total<-merge(data frameA,data frameB,by="ID"
# merge two data frames by ID and Country
total<-merge(data frameA,data frameB,by=c("ID","Country"))
total<-rbind(data frameA,data frameB)
总结
数据分析咨询请扫描二维码