#涉及到的R包
# library(readr)
# library(dplyr)
# library(ggplot2)
library(readr)
Reg_Data <- read_delim("C:/Items/R_Projects/R_DataMining/Data/Original_Data/Rg_Data.txt",
"\t", escape_double = FALSE, col_names = FALSE,
trim_ws = TRUE)
# 查看基本情况以及基本的数据清洗
# 查看数据的基本字段,字段的含义以及字段的顺序,字段的数据类型
# 各个字段是否有缺失值,值的范围,数据是否有重复值
# 数据不一致情况,以及数据量和小批量数据示例
str(Rg_Data)
View(Rg_Data)
# 找出重复数据的函数 duplicated - 判断对象的每个取值是否重复
# 去除所有列和去除选择的列 Rg_Data[!duplicated(Rg_Data),] #删掉所有列上都重复的
which(duplicated(Rg_Data))
which( duplicated(Rg_Data[,c(2)]) )
Rg_Data[which( duplicated(Rg_Data[,c(2)]) ) , ]
#unique返回对象的不同取值
#统计多列的重复数据- 统计频率
library(dplyr)
# 统计后的X2的顺序发生了变化,sort的排序针对的是排序后的字段n,
# 所以不能使用which等来标记
countData <- count(Rg_Data,X2,sort = FALSE)
# 重复的次数的情况
repcount <- filter(count(Rg_Data,X2,sort = FALSE),n>=2)$X2
Rg_Data[which( Rg_Data$X2 %in% repcount),]
filter(Rg_Data,Rg_Data$X2 %in% repcount)
# 去重- 用来排除有重复记录的行
distinct(Rg_Data)
distinct(select(Rg_Data,X2))
# 判断是否有NA值-并过滤
filter(Rg_Data, is.na(Rg_Data$X1)| is.na(Rg_Data$X2) )
# 增加字段
newData <- mutate(Rg_Data,month= substr(Rg_Data$X1,1,6))
# 分组后通常使用 summarise function 或者 window function 两类函数操作
# 在不分组的情况下使用,这时可以看做是只分为一组的特殊情况
# 分组计数-分组的聚合函数 having 可以使用filter来代替
by_month <- group_by(newData, month)
newDataMonth <- summarise(by_month,count = n(),aa=sum(!is.na(month)))
# 分组之后的窗口函数
by_Day <- group_by(Rg_Data, groupname= as.character(Rg_Data$X2) )
mutate(by_Day, employee_age = row_number(X1), rank_salary = min_rank(desc(X1)))
mutate(by_Day, employee_age = row_number(X1))
View(mutate(by_Day, employee_age = row_number(X1), rank_salary = min_rank(desc(X1))))
transmute(by_Day, employee_age = row_number( X1), rank_salary = min_rank(desc(X1)) )
#默认排序都是从小到大、从低到高,正序排列;如果要倒序,则可使用 desc()
windowfun <- mutate(by_Day, employee_age = row_number(X1) )
windowfun <- mutate(by_Day, employee_age = row_number(desc(X1)) )
View(windowfun)
# 联合left_join semi_join
# mydata <- left_join(x=userno_cash,y=userno_lastcash,by=c('userno'),copy=F)
#集合操作
setdiff(Rg_Data$X1,Rg_Data$X1)
setdiff(Rg_Data$X1,Rg_Data$X1)
intersect(Rg_Data$X1,Rg_Data$X1)
union(Rg_Data$X1,Rg_Data$X1)
# 绘图
library(ggplot2)
p1 <- ggplot(data = newDataMonth) + geom_bar(mapping = aes(x = month, y = aa,fill=month),stat="identity")
p1
参考
利用R语言进行数据分析 http://lixionghui.com/blog/
https://github.com/tidyverse/dplyr
R语言简明说明 https://www.rstudio.com/resources/cheatsheets/