Excel能处理的数据是有上限的(2007版本是256列X1048576行)。如果遇到大型数据,例如APP运行后台的一些数据,excel是处理不了的。这个时候就需要用sql,R语言或者python来整理我们需要的数据。
其实,传统的关系型数据库可以用sql来完成这些工作。如果你会写sql,那你可以直接在数据库平台上操作,导出自己需要的数据,如果不会,那就要求助于DBA。然而,DBA一般不太清楚数据分析师的需求,也没空理会数据分析师的需求(比如你要求他们按照A项排序后又按照B项排序),而且交流成本比较高……所以,数据分析师可以要求他们导出“全体”的数据库(或者自己连接数据库导出数据),然后自己来了解数据的结构和数据的类型,并进行简单筛选、排除、汇总工作。
如果是分布式的数据库,那就需要用HSQL,Spark等其他工具技巧来获取数据。以后有机会再介绍吧。这里主要是介绍如何用R语言来对数据进行初步的了解。
1.设置工作目录
了解当前目录:getwd()
设置工作目录:setwd(“F:/R语言工作目录”)
注意(1)斜杠的方向,(2)文件夹要先建好。
默认目录一般都在C盘,因此最好在其他盘设置工作目录,将数据保存在其他硬盘,以免使C盘空间越来越小。如果你处理的是几十KB的数据,放在C盘无所谓,但如果处理几十MB的数据,反复操作你的工作目录可能越来越大。
2.读取数据文件
推荐CSV格式
data1008 <- read.csv(“kunming.csv”,header=T)
data1009 <- read.table(“kunming.txt”,header=F)
其他参见 https://blog.csdn.net/tb3039450/article/details/52557200
3.列命名
names(data1008) <- c(“MAC”,”frequ”)
名称不能超过列数
4.数据描述
head(data1008) //主要是查看数据导入过程是否除了差错
str(data1008) //帮助你了解dataframe里面有的数据类型
summary(data1008) //帮助你了解数据分布和缺失值
5.数据类型转换
data1008$MAC <- as.character(data1008$MAC)
as.complex(x)
as.numeric(x)或者as.double(x)
as.integer(x)
as.logical(x)
as.date(X)
说明:上述函数表示,对于每个基本的数据类型,都有一个函数用来把其它数据类型的值转换为自己数据类型。转换成功,则得到相应的结果;反之,则得到NA值。
一般,字符型都会被默认为是factor,必然要转换成character才可以进行各种操作。
【待补充,R语言数据类型】
6.取某几列或某几行
etimetrans <- data1008[,”ETIME”]
data1008[1,3] #data1008数据框的第1行第3列
data1008[1:2] #data1008数据框的1到2列
data1008[c(‘age’,’status’)] #data1008数据框中的age和status列
data1008$status #patientdat数据框中的status列
取某几行
data1<-data1008[2:4,]
data2<-data1008[10:16,]
删除行
A <- A[-1,] //删除第一行
A <- A[,-2]//删除第二列
mydf <- subset(mydf, select = -X ) //删除mydf数集中X这一列
7.排序
dataorder <- data1008[order(-data1008[,4]),] //按照第4列排序
data1008$ID <- order(-data1008$res) //按照res排序
a[order(a$a1,-a$a2),] //先按照a1升序序,再按照a2降序
8.用0替换缺失值
data1008[is.na(data008)] <- 0
9.插入几行
data1<- data.frame(x1=runif(10),x2= runif(10),x3= runif(10))
row<- c(1, 1, 1)
data2 <- rbind(data1[1:5,], row, data1[6:nrow(data1), ])
插入几列
y<-1:4
data1 <- data.frame(x1=c(1,3,5,7), x2=c(2,4,6,8),x3=c(11,12,13,14),x4=c(15,16,17,18))
data2 <- cbind(data1[,1:2],y,data1[,3:ncol(data1)])
10.筛选数据
selectresult <- subset(df1,name==”aa”) //选出符合某一条件的数据
selectresult <- subset(df1,a>5) //选出符合某一条件的数据
11.两组数据求交集【未完待续】
非常重要。因为你经常需要合并或者关联两个表。
key是两个表都要有的一列。
x <- merge(a,b,by=”key”,all=FALSE)#内连接,两个表实现与的操作,只显示两个表都有的数值
x <- merge(a,b,by=”key”,all=TRUE)#外连接,两个表实现并的操作,如果有个表的数值没有显示为空
a <- merge(a,b,by=”key”,all.x=TRUE)#左连接
a <- merge(a,b,by=”key”,all.y=TRUE)#右连接
可以参考 https://www.jianshu.com/p/148a399b61d3
12.数据汇总【未完待续】
往往汇总后的数据才是数据分析师数据分析的起点。
13.单列频次分布【未完待续】
14.因变量和自变量作图【未完待续】
15.随机抽样【未完待续】