登录
首页精彩阅读R语言做数据探索
R语言做数据探索
2017-06-09
收藏

R语言数据探索

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()

R语言数据结构之间的转换

3 数据集变换

数据转换成窄数据,例如:

R语言把宽数据集变换成窄数据集

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)

总结

本文总结了R语言数据探索和处理的知识。

数据分析咨询请扫描二维码

客服在线
立即咨询