精华内容
下载资源
问答
  • R语言学习:缺失值处理
    2020-10-11 14:41:40

    本文是个人学习笔记

    学习了R语言中常用的缺失值处理方法,这里涉及到的是mice包。

    参考并引用了 Handling missing data with MICE package; a simple approach 作者:Klodian Dhana

    一、检查缺失值

    > sapply(data, function(x) sum(is.na(x)))
    

    可以找到有缺失值的变量

    二、利用MICE包插入缺失值

    > library(mice)
    > init = mice(data, maxit=0) 
    > meth = init$method
    > predM = init$predictorMatrix
    

    除了数据集的名称,其他代码都一致。

    如果不想要某一变量作为预测因子,则可以使用以下代码:

     > predM[, c("name")]=0
    

    注:如果该变量有缺失值,并不会影响缺失值本身的插入,只是不作为预测因子。

    如果某一含有缺失值的变量不需要插入,则可以使用以下代码:

    > meth[c("age")]=""
    

    对于不同类型的变量,有不同的方法:

    • 连续
    • 二分
    • 顺序
    > meth[c("weight")]="norm"  #连续
    > meth[c("smoking")]="logreg"  #二分
    > meth[c("education")]="polyreg" #顺序
    #可以加入多个变量
    

    插入缺失值

    > set.seed(103)
    > imputed = mice(data, method=meth, predictorMatrix=predM, m=5)
    

    插入缺失值之后创建一个新的数据集

    > data_imputed <- complete(imputed)
    

    三、确认已成功插入缺失值

    > sapply(imputed, function(x) sum(is.na(x)))
    
    更多相关内容
  • R语言处理缺失值

    2021-01-07 04:27:01
    R语言处理缺失值处理数据过程中,避免不了会产生一些缺失值,如未填写数据或者编码错误等原因,用NA表示缺失值。在R语言中,is.na()函数可以判断元素是否是缺失值,从而返回逻辑值(TRUE/FALSE),所以该函数将会...
  • R语言缺失值处理

    2021-05-22 06:12:27
    随机缺失:若某变量上的缺失数据与其他观测变量相关,与它自己的未观测不相关,则数据为随机缺失(MAR)。非随机缺失:若缺失数据不属于MCAR或MAR,则数据为非随机缺失(NMAR) 。处理缺失数据的方法有很多...

    数据缺失有多种原因,而大部分统计方法都假定处理的是完整矩阵、向量和数据框。

    缺失数据的分类:

    完全随机缺失:若某变量的缺失数据与其他任何观测或未观测变量都不相关,则数据为完全随机缺失(MCAR)。

    随机缺失:若某变量上的缺失数据与其他观测变量相关,与它自己的未观测值不相关,则数据为随机缺失(MAR)。

    非随机缺失:若缺失数据不属于MCAR或MAR,则数据为非随机缺失(NMAR) 。

    处理缺失数据的方法有很多,但哪种最适合你,需要在实践中检验。

    下面一副图形展示处理缺失数据的方法:

    201078504_1_20200902110925865.png

    处理数据缺失的一般步骤:

    1、识别缺失数据

    2、检测导致数据缺失的原因

    3、删除包含缺失值的实例或用合理的数值代替(插补)缺失值。

    1、识别缺失数据:

    R语言中,NA代表缺失值,NaN代表不可能值,Inf和-Inf代表正无穷和负无穷。

    在这里,推荐使用is.na,is.nan,is.finite,is.infinite4个函数去处理。

    x

    #判断缺失值

    is.na(x)

    #判断不可能值

    is.nan(x)

    #判断无穷值

    is.infinite(x)

    #判断正常值

    is.finite(x)

    201078504_2_2020090211092652.png

    推荐一个函数:complete.case()可用来识别矩阵或数据框中没有缺失值的行!

    展示出数据中缺失的行(数据集sleep来自包VIM)

    sleep[!complete.cases(sleep),]

    201078504_3_20200902110926224.png

    判断数据集中有多少缺失

    93f15b358bd3bd6f98a94f769f771f30.png

    针对复杂的数据集,怎么更好的探索数据缺失情况呢?

    mice包中的md.pattern()函数可以生成一个以矩阵或数据框形式展示缺失值模式的表格。

    201078504_4_20200902111206458.png

    备注:0表示变量的列中没有缺失,1则表示有缺失值。

    第一行给出了没有缺失值的数目(共多少行)。

    第一列表示各缺失值的模式。

    最后一行给出了每个变量的缺失值数目。

    最后一列给出了变量的数目(这些变量存在缺失值)。

    在这个数据集中,总共有38个数据缺失。

    图形化展示缺失数据:

    aggr(sleep,prop=F,numbers=T)

    201078504_5_20200902111206599.png

    matrixplot(sleep)

    201078504_6_20200902111206740.png

    浅色表示值小,深色表示值大,默认缺失值为红色。

    marginmatrix(sleep)

    上述变量太多,我们可以选出部分变量展示:

    x

    x[,c(1,2,4)]

    marginmatrix(x)

    201078504_7_20200902111206880.png

    为了更清晰,可以进行成对展示:

    marginplot(sleep[c(“Gest”,”Dream”)])

    201078504_8_2020090211120768.png

    在这里(左下角)可以看到,Dream和Gest分别缺失12和4个数据。

    左边的红色箱线图展示的是在Gest值缺失的情况下Dream的分布,而蓝色箱线图展示的Gest值不缺失的情况下Dream的分布。同样的,Gest箱线图在底部。

    2、缺失值数据的处理

    行删除法:数据集中含有缺失值的行都会被删除,一般假定缺失数据是完全随机产生的,并且缺失值只是很少一部分,对结果不会造成大的影响。

    即:要有足够的样本量,并且删除缺失值后不会有大的偏差!

    行删除的函数有na.omit()和complete.case()

    newdata

    sum(is.na(newdata))

    newdata

    sum(is.na(newdata))

    均值/中位数等填充:这种方法简单粗暴,如果填充值对结果影响不怎么大,这种方法倒是可以接受,并且有可能会产生令人满意的结果。

    方法1:

    newdata

    mean(newdata$Dream,na.rm = T)

    newdata[is.na(newdata$Dream),”Dream”]

    方法2:

    Hmisc包更加简单,可以插补均值、中位数等,你也可以插补指定值。

    library(Hmisc)

    impute(newdata$Dream,mean)

    impute(newdata$Dream,median)

    impute(newdata$Dream,2)

    mice包插补缺失数据:链式方程多元插值,首先利用mice函数建模再用complete函数生成完整数据。

    下图展示mice包的操作过程:

    201078504_9_20200902111207208.png

    mice():从一个含缺失值的数据框开始,返回一个包含多个完整数据集对象(默认可以模拟参数5个完整的数据集)

    with():可依次对每个完整数据集应用统计建模

    pool():将with()生成的单独结果整合到一起

    library(mice)

    newdata

    data

    插补方法是pmm:预测均值匹配,可以用methods(mice)查看其他方法

    maxit指迭代次数,seed指设定种子数(和set.seed同义)

    201078504_10_20200902111207302.png

    概述插补后的数据:

    summary(data)

    201078504_11_20200902111207474.png

    在这上面可以看到数据集中变量的观测值缺失情况,每个变量的插补方法,VisitSequence从左至右展示了插补的变量,预测变量矩阵(PredictorMatrix)展示了进行插补过程的含有缺失数据的变量,它们利用了数据集中其他变量的信息。(在矩阵中,行代表插补变量,列代表为插补提供信息的变量, 1

    和0分别表示使用和未使用。)

    查看整体插补的数据:

    data$imp

    查看具体变量的插补数据:

    data$imp$Dream

    最后,最重要的是生成一个完整的数据集

    completedata

    201078504_12_20200902111207646.png

    判断还有没有缺失值,如果没有,结果返回FLASE

    anyNA(completedata)

    针对以上插补结果,我们可以查看原始数据和插补后的数据的分布情况

    library(lattice)

    xyplot(data,Dream~NonD+Sleep+Span+Gest,pch=21)201078504_13_20200902111207771.png

    图上,插补值是洋红点呈现出的形状,观测值是蓝色点。

    densityplot(data)

    201078504_14_20200902111207927.png

    图上,洋红线是每个插补数据集的数据密度曲线,蓝色是观测值数据的密度曲线。

    stripplot(data, pch = 21)

    201078504_15_20200902111208115.jpg

    上图中,0代表原始数据,1-5代表5次插补的数据,洋红色的点代表插补值。

    下面我们分析对数据拟合一个线性模型:

    完整数据:

    library(mice)

    newdata

    data

    model

    pooled

    fim指的是各个变量缺失信息的比例,lambda指的是每个变量对缺失数据的贡献大小

    缺失数据(在运行中,自动会行删除):

    lm.fit

    summary(lm.fit)

    201078504_17_20200902111208412.png

    完整数据集和缺失数据集进行线性回归后,参数估计和P值基本一直。缺失值是完全随机产生的。如果缺失比重比较大的话,就不适合使用行删除法,建议使用多重插补法。

    kNN插值法:knnImputation函数使用k近邻方法来填充缺失值。对于需要插值的记录,基于欧氏距离计算k个和它最近的观测。接着将这k个近邻的数据利用距离逆加权算出填充值,最后用该值替代缺失值。

    library(DMwR)

    newdata

    knnOutput

    anyNA(knnOutput)

    head(knnOutput)

    201078504_18_20200902111208568.png

    目前,处理缺失值还有其他方法:

    201078504_19_20200902111208708.jpg

    当前,还有成对删除方法,但已经过时,虽然看起来,成对比较应用了所有的数据,但每次两组比较计算都是用到的不同数据集,这将会最终结果造成一定影响!!!

    喜欢 (5)or分享 (1)

    展开全文
  • #####缺失值判断以及处理##### #举例1:向量类型判断缺失值is.na和缺失值的填补which (x<-c(1,2,3,NA)) is.na(x) #返回一个逻辑向量,TRUE为缺失值,FALSE为非缺失值 table(is.na(x)) #统计分类个数 sum(x) ...

    转自:微点阅读(www.weidianyuedu.com)微点阅读 - 范文大全 - 免费学习知识的网站

    #####缺失值判断以及处理#####

    #举例1:向量类型判断缺失值is.na和缺失值的填补which

    (x<-c(1,2,3,NA))

    is.na(x)  #返回一个逻辑向量,TRUE为缺失值,FALSE为非缺失值

    table(is.na(x))  #统计分类个数

    sum(x)  #当向量存在缺失值的时候统计结果也是缺失值

    sum(x,na.rm = TRUE)  #很多函数里都有na.rm=TRUE参数,此参数可以在运算时移除缺失值

    (x[which(is.na(x))]<-0)  #可以用which()函数代替缺失值,which()函数返回符合条件的响应位置

    #举例2:数据框类型判断缺失值is.na、缺失值的填补which、缺失值所在行的删除na.omit

    (test<-data.frame(x=c(1,2,3,4,NA),y=c(6,7,NA,8,9)))

    is.na(test)  #test中空值的判断

    which(is.na(test),arr.ind = T)  #arr.ind=T可以返回缺失值的相应行列坐标

    test[which(is.na(test),arr.ind = T)]<-0 #结合which进行缺失替代

    (test_omit<-na.omit(data.frame(x=c(1,2,3,4,NA),y=c(6,7,NA,8,9))))  #na.omit函数可以直接删除值所在的行

    #举例3:识别缺失值的基本语法汇总

    str(airquality)

    complete.cases(airquality)  #判断个案是否有缺失值

    airquality[complete.cases(airquality),]  #列出没有缺失值的行

    nrow(airquality[complete.cases(airquality),])  #计算没有缺失值的样本量

    airquality[!complete.cases(airquality),]  #列出有缺失的值的行

    nrow(airquality[!complete.cases(airquality),])  #计算有缺失值的样本量

    is.na(airquality$Ozone)  #TRUE为缺失值,FALSE为非缺失值

    table(is.na(airquality$Ozone))

    complete.cases(airquality$Ozone)  #FALSE为缺失值,TRUE为非缺失值

    table(complete.cases(airquality$Ozone))

    #可用sum()和mean()函数来获取关于缺失数据的有用信息

    sum(is.na(airquality$Ozone))  #查看缺失值的个数

    sum(complete.cases(airquality$Ozone))  #查看没有缺失值的个数

    mean(is.na(airquality$Ozone))  #查看缺失值的占比

    mean(is.na(airquality))  #查看数据集airquality中样本有缺失值的占比

    #举例4:探索缺失值模式

    #列表缺失值探索

    library(mice)

    md.pattern(airquality)

    #图形缺失值探索

    library(VIM)

    aggr(airquality,prop=FALSE,number=TRUE)

    aggr(airquality,prop=TRUE,number=TRUE) #生成相同的图形,但用比例代替了计数

    aggr(airquality,prop=FALSE,number=FALSE)  #选项numbers = FALSE(默认)删去数值型标签

    #举例5:删除缺失值

    airquality[complete.cases(airquality),] #方法一:删除缺失值行

    na.omit(airquality) #方法二:删除缺失值的行

    #举例6:缺失值回归模型插补

    newnhanes2<-nhanes2

    sub<-which(is.na(newnhanes2[,4]))  #返回newnhanes2数据集中第4列NA的行标识

    datatr<-newnhanes2[-sub,]  #方法一:将第4列不为NA的数存入数据集datatr中

    datatr<-newnhanes2[complete.cases(newnhanes2[,4]),]  #方法二:将第4列不为NA的数存入数据集datatr中

    datate<-newnhanes2[sub,]  #方法一:将第4列为NA的数存入数据集datate中

    datate<-newnhanes2[is.na(newnhanes2[,4]),]  #方法二:将第4列为NA的数存入数据集datate中

    fit<-lm(chl~age,data = datatr)  #利用datatr中age为自变量,chl为因变量构建线性回归模型lm

    newnhanes2[sub,4]<-round(predict(fit,datate))  #利用datate中数据按照模型fit对nhanes2中chl中的缺失数据进行预测

    #举例7:缺失值随机森林插补

    library(missForest)

    z<-missForest(airquality)  #用随机森林迭代弥补缺失值

    air.full<-z$ximp

    zz<-missForest(nhanes2)

    nhanes2.full<-zz$ximp

    #举例8:线性回归模型插补

    mice::md.pattern(airquality)

    index1<-is.na(airquality$Ozone) #对Ozone变量进行缺失值处理

    dput(colnames(airquality))  #求出变量列名称

    Ozone_train<-airquality[!index1,c("Ozone", "Wind", "Temp", "Month", "Day")] #训练集,需注意什么时候用!,什么时候用-

    Ozone_test<-airquality[index1,c("Ozone", "Wind", "Temp", "Month", "Day")] #测试集

    fit<-lm(Ozone~.,data = Ozone_train) #建立线性回归模型

    summary(fit)

    airquality[index1,"Ozone"]<-predict(fit,newdata =Ozone_test )

    index2<-is.na(airquality$Solar.R)  #Solar.R变量进行缺失值处理,Ozone变量数据已补齐

    Solar.R_train<-airquality[!index2,]  #训练集

    Solar.R_test<-airquality[index2,]  #测试集

    Solar.R_fit<-lm(Solar.R~.,data = Solar.R_train)

    summary(Solar.R_fit)

    airquality[index2,"Solar.R"]<-predict(Solar.R_fit,newdata = Solar.R_test)

    mice::md.pattern(airquality)

    #knn和bag缺失值插补(利用caret包中的preProcess函数,method参数有多种方式可选)

    question<-read.csv("问卷调研数据.csv")

    question<-question[,-1]

    str(question)

    for(i in 1:ncol(question)){

    question[,i]<-as.factor(question[,i])

    }  #批量修改为因子类型

    str(question)

    #举例9:利用KNN算法进行缺失值插补(只能对数值型变量处理)

    question<-read.csv("问卷调研数据.csv")

    question<-question[,-1]

    mice::md.pattern(question)  #列表缺失值探索

    library(caret)

    knn.model<-preProcess(question,method = "knnImpute") #KNN处理数值型数据(欧式距离),不能处理因子型数据

    question1<-predict(knn.model,newdata = question)

    install.packages("RANN")

    mice::md.pattern(question1)

    table(question1$性别)  #不是之前的1和2了

    table(question$性别)

    #最后结果:knn不适合处理该数据,需要做哑变量处理,再套模型

    #举例10:利用袋装算法进行缺失值插补(只能对数值型变量处理)

    question<-read.csv("问卷调研数据.csv")

    question<-question[,-1]

    mice::md.pattern(question) #列表缺失值探索

    library(caret)

    bag.model<-preProcess(question,method = "bagImpute") #bag算法模型建立

    install.packages("ipred")

    question2<-predict(bag.model,question) #预测结果

    mice::md.pattern(question2)  #列表缺失值探索

    table(question2$性别)

    #最后结果:bag算法不适合处理该数据

    (来源 微点阅读:www.weidianyuedu.com/content/3416071450222.html)

    展开全文
  • R语言-处理缺失值的方法

    千次阅读 2021-08-27 09:37:51
    R中,NA表示缺失值,NA是不可用,not available的简称,用来存储缺失信息 缺失值NA表示没有,并不一定就是0,NA是不知道是多少,也可以是0,也可以是任何值,缺失值和0 是完全不同的。 1. 处理mean,sum等常规统计...

    缺失值NA

    在R中,NA表示缺失值,NA是不可用,not available的简称,用来存储缺失信息
    缺失值NA表示没有,并不一定就是0,NA是不知道是多少,也可以是0,也可以是任何值,缺失值和0 是完全不同的。
    1. 处理mean,sum等常规统计函数中的缺失值出现的问题:添加参数na.rm=T

    > x <- c(NA,1:20,NA,NA,34:35)
    > x
     [1] NA  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 NA NA 34 35
     
    > sum(x)
    [1] NA
    
    > sum(x,na.rm = TRUE)
    [1] 279
    

    2. 判断元素中是否含有缺失值:is.na()函数

    
    > is.na(x)
     [1]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
    [23]  TRUE FALSE FALSE
    

    3. 计算每一列/每一行的缺失值数,用sleep数据集

    sleep数据集引用之前需要先下载程序包VIM(需要下载很久)

    > install.packages("VIM")
    > library(VIM)
    载入需要的程辑包:colorspace
    载入需要的程辑包:grid
    VIM is ready to use.
    
    Suggestions and bug-reports can be submitted at: https://github.com/statistikat/VIM/issues
    
    载入程辑包:‘VIM’
    
    The following object is masked from ‘package:datasets’:
    
        sleep
    
    > sleep
        BodyWgt BrainWgt NonD Dream Sleep  Span  Gest Pred Exp Danger
    1  6654.000  5712.00   NA    NA   3.3  38.6 645.0    3   5      3
    2     1.000     6.60  6.3   2.0   8.3   4.5  42.0    3   1      3
    3     3.385    44.50   NA    NA  12.5  14.0  60.0    1   1      1
    4     0.920     5.70   NA    NA  16.5    NA  25.0    5   2      3
    5  2547.000  4603.00  2.1   1.8   3.9  69.0 624.0    3   5      4
    6    10.550   179.50  9.1   0.7   9.8  27.0 180.0    4   4      4
    7     0.023     0.30 15.8   3.9  19.7  19.0  35.0    1   1      1
    8   160.000   169.00  5.2   1.0   6.2  30.4 392.0    4   5      4
    9     3.300    25.60 10.9   3.6  14.5  28.0  63.0    1   2      1
    10   52.160   440.00  8.3   1.4   9.7  50.0 230.0    1   1      1
    11    0.425     6.40 11.0   1.5  12.5   7.0 112.0    5   4      4
    12  465.000   423.00  3.2   0.7   3.9  30.0 281.0    5   5      5
    13    0.550     2.40  7.6   2.7  10.3    NA    NA    2   1      2
    14  187.100   419.00   NA    NA   3.1  40.0 365.0    5   5      5
    15    0.075     1.20  6.3   2.1   8.4   3.5  42.0    1   1      1
    16    3.000    25.00  8.6   0.0   8.6  50.0  28.0    2   2      2
    17    0.785     3.50  6.6   4.1  10.7   6.0  42.0    2   2      2
    18    0.200     5.00  9.5   1.2  10.7  10.4 120.0    2   2      2
    19    1.410    17.50  4.8   1.3   6.1  34.0    NA    1   2      1
    20   60.000    81.00 12.0   6.1  18.1   7.0    NA    1   1      1
    21  529.000   680.00   NA   0.3    NA  28.0 400.0    5   5      5
    22   27.660   115.00  3.3   0.5   3.8  20.0 148.0    5   5      5
    23    0.120     1.00 11.0   3.4  14.4   3.9  16.0    3   1      2
    24  207.000   406.00   NA    NA  12.0  39.3 252.0    1   4      1
    25   85.000   325.00  4.7   1.5   6.2  41.0 310.0    1   3      1
    26   36.330   119.50   NA    NA  13.0  16.2  63.0    1   1      1
    27    0.101     4.00 10.4   3.4  13.8   9.0  28.0    5   1      3
    28    1.040     5.50  7.4   0.8   8.2   7.6  68.0    5   3      4
    29  521.000   655.00  2.1   0.8   2.9  46.0 336.0    5   5      5
    30  100.000   157.00   NA    NA  10.8  22.4 100.0    1   1      1
    31   35.000    56.00   NA    NA    NA  16.3  33.0    3   5      4
    32    0.005     0.14  7.7   1.4   9.1   2.6  21.5    5   2      4
    33    0.010     0.25 17.9   2.0  19.9  24.0  50.0    1   1      1
    34   62.000  1320.00  6.1   1.9   8.0 100.0 267.0    1   1      1
    35    0.122     3.00  8.2   2.4  10.6    NA  30.0    2   1      1
    36    1.350     8.10  8.4   2.8  11.2    NA  45.0    3   1      3
    37    0.023     0.40 11.9   1.3  13.2   3.2  19.0    4   1      3
    38    0.048     0.33 10.8   2.0  12.8   2.0  30.0    4   1      3
    39    1.700     6.30 13.8   5.6  19.4   5.0  12.0    2   1      1
    40    3.500    10.80 14.3   3.1  17.4   6.5 120.0    2   1      1
    41  250.000   490.00   NA   1.0    NA  23.6 440.0    5   5      5
    42    0.480    15.50 15.2   1.8  17.0  12.0 140.0    2   2      2
    43   10.000   115.00 10.0   0.9  10.9  20.2 170.0    4   4      4
    44    1.620    11.40 11.9   1.8  13.7  13.0  17.0    2   1      2
    45  192.000   180.00  6.5   1.9   8.4  27.0 115.0    4   4      4
    46    2.500    12.10  7.5   0.9   8.4  18.0  31.0    5   5      5
    47    4.288    39.20   NA    NA  12.5  13.7  63.0    2   2      2
    48    0.280     1.90 10.6   2.6  13.2   4.7  21.0    3   1      3
    49    4.235    50.40  7.4   2.4   9.8   9.8  52.0    1   1      1
    50    6.800   179.00  8.4   1.2   9.6  29.0 164.0    2   3      2
    51    0.750    12.30  5.7   0.9   6.6   7.0 225.0    2   2      2
    52    3.600    21.00  4.9   0.5   5.4   6.0 225.0    3   2      3
    53   14.830    98.20   NA    NA   2.6  17.0 150.0    5   5      5
    54   55.500   175.00  3.2   0.6   3.8  20.0 151.0    5   5      5
    55    1.400    12.50   NA    NA  11.0  12.7  90.0    2   2      2
    56    0.060     1.00  8.1   2.2  10.3   3.5    NA    3   1      2
    57    0.900     2.60 11.0   2.3  13.3   4.5  60.0    2   1      2
    58    2.000    12.30  4.9   0.5   5.4   7.5 200.0    3   1      3
    59    0.104     2.50 13.2   2.6  15.8   2.3  46.0    3   2      2
    60    4.190    58.00  9.7   0.6  10.3  24.0 210.0    4   3      4
    61    3.500     3.90 12.8   6.6  19.4   3.0  14.0    2   1      1
    62    4.050    17.00   NA    NA    NA  13.0  38.0    3   1      1
    

    计算每一列/每一行缺失值数

    
    > colSums(sleep)
     BodyWgt BrainWgt     NonD    Dream    Sleep     Span     Gest     Pred      Exp   Danger 
    12324.98 17554.32       NA       NA       NA       NA       NA   178.00   150.00   162.0
     
    > rowSums(sleep)
     [1]       NA   77.700       NA       NA 7862.800  428.650   96.723  776.800  152.900  794.560  163.825 1221.800       NA       NA   66.575
    [16]  129.200   79.685  163.000       NA       NA       NA  333.260   55.820       NA  778.400       NA   77.701  110.540 1578.800       NA
    [31]       NA   53.445  117.060 1768.000       NA       NA   57.023   65.978   67.800  179.600       NA  207.980  349.000   75.420  542.800
    [46]   95.400       NA   61.280  139.035  405.000  264.250  274.400       NA  424.100       NA       NA   99.600  239.600   89.504  327.790
    [61]   67.200       NA
    

    4. 去掉数据集中的缺失值:na.omit()函数

    na.omit(object,cols,invert)
    object::数据集
    cols:一个由列名(或数字)组成的向量,用于检查缺失值。默认值是所有列。
    invert:如果FALSE将省略所有缺少值的行(默认)。TRUE只返回那些缺少值的行。

    
    > x <- c(NA,1:20,NA,NA,34:35)
    > x
     [1] NA  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 NA NA 34 35
     
    > na.omit(x)
     [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 34 35
    attr(,"na.action")
    [1]  1 22 23
    attr(,"class")
    [1] "omit"
    
    #去掉缺失值中的行
    > length(rownames(sleep))
    [1] 62
    > length(rownames(na.omit(sleep)))
    [1] 42
    

    5. 处理缺失值的包

    处理不完整数据的方法,以及R中相关包的函数6. 不同缺失值之间的区别

    NA是存在的值,但是不知道是多少
    NaN是不存在的
    Inf存在,是无无穷大或者无无穷小,但是表示不可能的值

    > 1/0
    [1] Inf
    
    > -1/0
    [1] -Inf
    
    > 0/0
    [1] NaN
    
    > is.nan(0/0)
    [1] TRUE
    
    > is.infinite(1/0)
    [1] TRUE
    
    展开全文
  • R语言-缺失值判断以及处理 上次说了关于某个固定值,异常值,缺失值等的固定位置,今天详细说下如果数据列中出现缺失值,该如何处理。 向量组中的不说了,一般实践都是数据框。 1.数据框缺失值判断 数据框类型判断...
  • R语言笔记-缺失值处理

    千次阅读 2020-10-19 22:07:09
    文章目录缺失值的识别缺失值的忽略在计算中忽略缺失值:``na.rm=TRUE``删除变量存在缺失值的个案:``na.omit()`` 缺失值的识别 缺失值表示:NA,代表not available is.na():返回与输入对象相同格式的对象,其中...
  • R语言缺失值处理

    千次阅读 2019-06-18 14:42:50
    前言   一个完整的处理方法通常包含以下几个...知道数据为何缺失依赖于你对数据生成过程的理解,而决定如何处理缺失值则需要判断哪种方法的结果最为可靠和精确。   统计学家通常将缺失数据分为三类。它们都...
  • R语言数据缺失值处理

    千次阅读 2019-11-01 17:34:52
    微信公众号:[R语言小白速通] 主要分享一些R语言和统计学知识,提升自己,帮助他人。 [如果你觉得本文章对你有帮助,欢迎赞赏] ...R语言中用NA代表缺失值。使用is.na函数可以检测缺失值,并返回...
  • R语言——数据清洗之缺失值处理

    万次阅读 多人点赞 2020-10-13 16:29:51
    缺失值处理步骤: 1)识别缺失数据; 2)检查导致数据缺失的原因; 3)删除包含缺失值的实例或用合理的数值代替(插补)缺失值 缺失值数据的分类: 1)完全随机缺失:若某变量的缺失数据与其他任何观测或未观测变量...
  • R语言 处理缺失值

    千次阅读 2020-07-18 15:40:41
    R语言进行计算时,缺失值不会被直接剔除,包含缺失值的数值型数据,R语言不会去计算均值等相关统计量,于是迫切需要对缺失数据处理,在进行缺失数据处理的时候,通常分为两种情况:替代和删除。 首先,需要确定哪里...
  • R语言 缺失值处理

    千次阅读 2016-05-17 19:10:25
    R语言 缺失值处理
  • 进行简单的数据处理时,我们处理的基本都是完整的数据集,但是实际问题中我们经常会遇到带有缺失值的数据,处理此类数据也就显得尤为重要。 处理缺失值的一般步骤 首先我们列出处理缺失值的一般步骤,对整个流程有...
  • 1.查看全部: is.na(工作表) any(is.na(工作表)) 2.查看第二列: is.na(工作表[,2]) any(is.na(工作表[,2])) 3.删除缺失值所在行后的工作表: 工作表[complete.cases(工作表),] 4.查看数据概况 summary(工作表)
  • R语言数据缺失值处理(随机森林,多重插补)

    千次阅读 多人点赞 2020-12-03 15:56:16
    缺失值是指数据由于种种因素导致的数据不完整,可以分为机械原因和人为原因。对于缺失值我们通常采用以下几种方法来进行插补。 1.读取数据 通过read.csv函数导入文档,也可以用其他函数读入,如openxlsx::read.xlsx,...
  • R语言缺失值替换:缺失的值(NA)替换每个分组最近的非缺失值 目录 R语言缺失值替换:缺失的值(NA)替换每个分组最近的非缺失值 #仿真数据 #缺失的值(NA)替换每个分组最近的非缺失值1 #缺失的值(NA)替换每个分组...
  • 超详细:R语言缺失值及异常值处理

    万次阅读 多人点赞 2018-01-26 18:09:48
    缺失值处理方法:对于缺失值处理,从总体上来说分为删除存在缺失值的个案和缺失值插补。 异常值指样本中的个别值,其数值明显偏离它(或他们)所属样本的其余观测值,也称异常数据,离群值。目前人们对异常值的...
  • R语言缺失值和异常值处理

    千次阅读 2020-12-20 13:43:39
    加载并查看数据基本情况library(VIM)data(sleep)str(sleep)summary(sleep)head(sleep)一、处理缺失值查看NA的分布情况,有一个直观了解library('mice')md.pattern(sleep)matrixplot(sleep)NA分布情况根据NA的分布...
  • 文章目录简介如何开始探索缺失值`vis_dat()``vis_miss()`探索缺失值的关系可视化变量中的缺失值使用`NA`替换缺失值整洁的缺失数据:shadow matrix可视化插补后的缺失值缺失值的汇总函数模型化缺失值 简介 缺失值在...
  • R语言_缺失值NA的处理

    2022-04-05 10:22:23
    一、用0替代数据框中的...R语言数据框中,用0替代NA缺失值 - yangk - 博客园1、用0替代数据框中的缺失值NA 生成数据框: 替代数据框中的缺失值 2、用0替代变量中的缺失值https://www.cnblogs.com/yangk/p/6374055.html
  • R语言处理缺失数据的5个常用包

    千次阅读 2022-04-07 18:12:43
    R语言处理缺失数据的5个常用包1.常用缺失数据处理包2. MICE 包2.1基本介绍2.2 实例展示3.Amelia包3.1基本介绍3.2实例展示4.missForest包4.1基本介绍4.2实例展示5.Hmisc包5.1基本介绍5.2实例展示6.mi包6.1基本介绍6.2...
  • 数据分析中缺失值处理~R语言

    万次阅读 多人点赞 2018-02-04 19:50:10
    最近接到了一些真实的数据,数据中包含着许多缺失值,如何对缺失值处理,能更好的为我们做数据分析,更高效率的建模,缩小在测试集上预测分析的偏差,当然这个偏差越小我们肯定越高兴的。 数据准备 我用的是一份...
  • R语言缺失值判断与处理mice包-3

    千次阅读 2021-09-06 21:18:03
    R语言填充缺失值mice 1.缺失值填充方法 删除 平均值、中位数 回归插值 多元回归插值 2.mice包介绍 对于缺失值数据的处理,用3个步骤来进行定义。 填充:mice()函数,从一个包含缺失数据的数据框开始,然后返回...
  • 介绍 缺失值被认为是预测建模的首要障碍。因此,掌握克服这些问题的方法很重要。 估算缺失值的方法的选择在很大程度上影响了模型的...在本文中,我列出了5个R语言方法。 链式方程进行的多元插补 通过链...
  • R语言-缺失值判断以及处理

    千次阅读 2020-12-22 18:33:48
    #####缺失值判断以及处理######举例1:向量类型判断缺失值is.na和缺失值的填补which(xis.na(x) #返回一个逻辑向量,TRUE为缺失值,FALSE为非缺失值table(is.na(x)) #统计分类个数sum(x) #当向量存在缺失值的时候统计...
  • 首先我们职位的数据因为都是字符串类型然后发现R语言对字符串的空值会用””来补齐就不能检查缺失值 我就采用which来查看缺失值的下标 查看占比数量可以定用什么来补齐看图可以得可以用未知或NA来补齐了 代码...
  • [个人笔记]R语言缺失值NA处理

    千次阅读 2021-07-14 10:58:46
    目录前言缺失值分布评估看有多少行有缺失值:VIM:看一下缺失值的分布、比例情况缺失值填补方法Hmisc或e1071包:均值、中位数、随机填充DMwR2包: 中心填充centralImputation 和knn6、rpart (略)mice包的mice函数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,595
精华内容 6,238
关键字:

r语言缺失值处理