R语言做数据探索
本文总结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语言做数据探索和处理的知识。
您在阅读中,有什么建议或者想法,请留言。
想加入数据人圈子,请加微信luqin360。
为什么做数据人网http://shujuren.org
帮助人们做明智决策,令人兴奋和有价值!
怎么做数据人网http://shujuren.org
把数据驱动决策做到极致,涵盖数据思维和数据技术等!
数据人网做什么?
数据人网是数据知识服务商!
共建共享优质数据知识库,提供省时有用数据知识。
点击“阅读原文”进入数据人网。
请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!