如何处理缺失值
3-5处理缺失值
x<-c(1,NA,2,NA,3)
is.na(x)
x[!is.na(x)] (取x中不是缺失值的部分,!的意思是取反,即真变假)
x<-c(1,NA,2,NA,3)
y<-c("a","b",NA,"c"NA)
z<-complete.cases(x,y)(运行之后x和y都不是缺失值的位置才会是TRUE)
然后x[z] y[z]就可以拿到都不是缺失值的元素
进一步看complete函数的功能:
首先加载一下数据集所在的包 library(datasets)
head(airquality)(看一下数据集)
通常情况下会选择都没有缺失值的变量 g<-complete.cases(airquality)
airquality[g,][1:10,](得出的结果是没有缺失值的)
处理缺失值
x <- c(1,NA,2,NA,3)
x[!is.na(x)] #输出去除缺失值后的x
complete.cases(x,y) #x,y为两个向量,此函数输出结果为逻辑值,只要当对应位置的值都不为缺失值时返回TRUE,否则返回FALSE。
library(datasets) #加载R自带的datasets数据集
head(airquality) #查看数据集前6行
g <- complete.cases(airquality) #去除缺失值
airquality[g,][1:10,] #显示前十条记录
选取x,y对应位置均不是缺失值的元素:z <- complete.cases(x,y)
处理缺失值
创建带有缺失值的向量,判断是否带有缺失值
!代表--取反
complete.case()---获取两个都不是缺失值的数据
结果:只有x,y中都不是缺失值的位置是TRUE ,有一个缺失值或者两个缺失值为FALSE
这样x,y就取到了x,y都不是缺失值位置的内容
加载datasets这个包
查看其中一个数据集的内容
判断数据集是否为空值[1]、[13]等,是代表数据的位置,第一个,第十三个
!表示取反
complete.cases(,)表示取x,y中都不是缺失值的元素
得到向量中非缺失值的元素:x[!is.na(x)],!代表取反
选取两个向量(x,y)中对应位置都不是缺失值的元素:用complete.cases()函数给z赋值,得到逻辑向量,然后用x[z]和y[z]得到最终结果
看数据集长什么样用head()函数,数据集中每一行叫做一次记录,每一列叫做一个变量,通常会选择在所有变量中都没有缺失值的记录,这时可用complete.cases(数据集)函数给z(任一字母)赋值
缺失值处理 - 判断缺失值:is.na(x) - 取出向量中非缺失值元素:y[!is.na(x)] - 取出多个向量中的缺失值:z <- complete.cases(x,y) x[z] ; y[z] - 利用数据集实践 library(datasets) - 包含airquality集
library(datasets) #得到R的数据集 head(数据集名称) #返回数据集前六列的数据 可通过g <- complete.cases(数据集名称)返回所有的结果
右下键的packages栏可以查看当前加载的包的情况;
用x[!is.na(x)]取得x中不是缺失值的元素;
用complete.cases(x,y)来获得对应位置都不是缺失值的元素;
右下键的packages栏可以查看当前加载的包的情况;
两个向量,选取对应位置都不是缺失值的-用complete选出一个新变量z,只有两者都不是缺失值才会返回true,然后再用x【z】 y【z】选出都不是缺失值的
library加载数据集,dataset是r里自带的数据包
head是取数据集的前六行看看数据及有哪些变量,基本情况。这个数据集有六个变量,目前只看到 6次记录,通常我们希望选取所有变量都没有缺失值的记录
用complete输出的判断 第二行的13表示第二行的第一个true是原数据集的第十三个数据
数据框与向量还是不一样,返回输出非缺失值是考虑行和列,这里我们要每行数据都完整,所以g放在行上,列都留下,所以列的位置空着,后面再加一颗括号就依旧是行列的格式,前10行,列空着。最后输出的数据框左边数字表示选出来的数据在原数据集是第几行
如何处理缺失值
x[!is.na(x)]//除去不是缺失值的元素留下的内容
#如何处理缺失值
x<-c(1,NA,2,NA,3) is.na(x) x[!is.na(x)]#提取出无缺失值的数据,“!”代表取反 x<-c(1,NA,2,NA,3) y<-c("a","b",NA,"c",NA) z<-complete.cases(x,y)#查看x和y的对应位置中均不存在缺失值的部分(以逻辑向量形式表示) x[z]#取出x中对应的非缺失值 y[z]#取出y中对应的非缺失值 library(datasets) head(airquality)#查看数据集中的前面部分 g<-complete.cases(airquality) airquality[g,][1:10,]
x<-c(1,NA,2,NA,3)
is.na(x) # 返回逻辑向量 FALSE TRUE FALSE TRUE FALSE
(FALSE代表不是缺失值,TRUE代表是缺失值)
x[!is.na(x)] #运行后得到 1 2 3,向量中不是缺失值的元素
x<-c(1,NA,2,NA,3)
y<-c("a","b",NA,"c",NA)
z<-complete.cases(x,y) #选取那些对应位置都不是缺失值的元素,
x[z] #得到x,y里都不是缺失值的元素
y[z] #得到x,y里都不是缺失值的元素
用R自带的数据集来展示complete函数的功能:
library(datasets) #加载一个datasets的包,这个包里包含了很多现成的数据集,找到airquality这个数据集,可以查看airquality这个数据集中有哪些变量
head(airquality) # 展示前六行, 一行代表一个记录,一列代表一个变量,选择在所有变量上都没有缺失值的记录
g<-complete.cases(airquality)
airquality[g, ][1: 10, ]
x[!is.na(x)] #返回不是缺失值的元素
complete.cases() #()内为两个向量对应的元素都不是缺失值的才为TRUE,否则返回的向量中都为FALSE
library(datasets) #得到R的数据集
head(数据集) #返回数据集前六列的数据
可通过g <- complete.cases(数据集) 返回每条数据是否含有缺失值的向量
数据集[g,][1:10,] #表示不含有缺失值的,所有变量都显示,显示第1到第10行,显示所有列。因为g是向量,所以可以用来选择行,即选择哪些数据