R语言统计与分析第五周总结

本文介绍了使用R语言处理缺失值的方法,包括利用is.na函数检查、complete.cases函数筛选、mice包的md.pattern函数分析以及用同类均值填充。同时,讲解了数据转换技巧,如日期格式转换、新增变量和数据标准化。此外,还详细阐述了如何利用cut函数进行数据分箱和预处理库caret进行离散数据编码。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


缺失值

导入玩家的玩牌游戏数据
#player <- read.csv("./data/chapter05/玩家玩牌数据.csv",F,na.strings = “NA”)
player <- read.csv("./data/chapter05/玩家玩牌数据.csv",F)
head(player)
str(player)
player_col_names <- c(“用户id”,“性别”,“等级”,“站内好友数”,“经验值”,
“积分”,“登录总次数”,“玩牌局数”,“赢牌局数”,“身上货币量”)

查看变量名
colnames(player) <- player_col_names
colnames(player)
查看前六行
head(player)
在这里插入图片描述

利用is.na函数判断“玩牌局数”变量各值是否为缺失值
is.na(player$玩牌局数)
在这里插入图片描述

统计缺失值与非缺失值的个数
table(is.na(player$玩牌局数))
在这里插入图片描述

sum()和mean()函数来统计缺失值的个数和占比
#计算缺失值个数
sum(is.na(player$玩牌局数))
在这里插入图片描述

#计算缺失值占比
mean(is.na(player$玩牌局数))
在这里插入图片描述

利用complete.cases函数查看完整实例
sum(complete.cases(player))
在这里插入图片描述

用md.pattern函数查看player的缺失值模式
if(!require(mice)) install.packages(“mice”)
md.pattern(player)
在这里插入图片描述

–删除缺失样本
sum(!complete.cases(player))
player_full <- na.omit(player)
计算有缺失值的样本个数
sum(!complete.cases(player_full))
在这里插入图片描述

–替换缺失值
iris1 <- iris[,c(1,5)]
head(iris1)
table(iris1KaTeX parse error: Expected 'EOF', got '#' at position 10: Species) #̲将40、80、120号样本的S…Sepal.Length,na.rm = T);Sepal.Length.mean
iris1[c(40,80,120),1] <- round(Sepal.Length.mean,1)
iris1[c(40,80,120),1]
查看以前的值和现在的值
在这里插入图片描述

iris[c(40,80,120),1];iris1[c(40,80,120),1]

利用同类均值进行赋值的方式来填补缺失值
#将40、80、120号样本的Sepal.Length设置为缺失值
iris2 <- iris[,c(1,5)]
iris2[c(40,80,120),1] <- NA
iris2[40,1] <- round(mean(iris2[iris1 S p e c i e s = = ′ s e t o s a ′ , ′ S e p a l . L e n g t h ′ ] , n a . r m = T ) , 1 ) i r i s 2 [ 80 , 1 ] < − r o u n d ( m e a n ( i r i s 2 [ i r i s 1 Species=='setosa','Sepal.Length'], na.rm = T),1) iris2[80,1] <- round(mean(iris2[iris1 Species==setosa,Sepal.Length],na.rm=T),1)iris2[80,1]<round(mean(iris2[iris1Species==‘versicolor’,‘Sepal.Length’],
na.rm = T),1)
iris2[120,1] <- round(mean(iris2[iris1$Species==‘virginica’,‘Sepal.Length’],
na.rm = T),1)
#查看以前的值和现在的值
iris[c(40,80,120),1];iris1[c(40,80,120),1];iris2[c(40,80,120),1]
在这里插入图片描述

数据转换:

导入数据
rawdata <- read.csv(“D://小学期/数据转换数据.csv”)
#查看数据的前六行
head(rawdata)
str(rawdata)
#将注册日期变量转换成日期格式
rawdata r e g i s t r a t

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值