目录

  • 前言
  • 缺失值分布评估
    • 看有多少行有缺失值:
    • VIM:看一下缺失值的分布、比例情况
  • 缺失值填补方法
    • Hmisc或e1071包:均值、中位数、随机填充
    • DMwR2包: 中心填充centralImputation 和knn
    • 6、rpart (略)
    • mice包的mice函数(略)
  • 评估填补效果(还没实施)
  • 实践

前言

项目用到一个数据集,含有很多NA。特此记录怎么处理。
主要参考:CSDN一个教程:DMwR为主
mice为主
银河统计

缺失值分布评估

看有多少行有缺失值:

如果缺失值不多,直接删了有缺失值的样本最方便。
每行一个样本,计算一下又多少行有缺失值:

## ###-------   缺失值统计
# 找出有NA的行一共有多少   --------#
head(data)
dim(data)NAcounter = 0
for (i in c(1:nrow(data))){if( TRUE %in% (is.na(data[i,]))){print(sprintf("%d, NA",i))NAcounter =NAcounter +1}elseprint(i)
}
print(sprintf("There are %d/%d patients with NA",NAcounter,nrow(data)))

发现我一共四百多,确实200多。看来不能直接删掉。

VIM:看一下缺失值的分布、比例情况

# 使用VIM包
# site="https://mirrors.tuna.tsinghua.edu.cn/CRAN"
# package_list = c("VIM")
# for(p in package_list){#  if(!suppressWarnings(suppressMessages(require(p, character.only = TRUE, quietly = TRUE, warn.conflicts = FALSE)))){#    install.packages(p, repos=site)
#    suppressWarnings(suppressMessages(library(p, character.only = TRUE, quietly = TRUE, warn.conflicts = FALSE)))
#  }
# }library(VIM)
aggr(data,prop=T,numbers=T)
# help(aggr) # 该命令给出该函数的文档


这个图左边还看得懂,age,T,M都是列名,给出了每一列含缺失值的比例。右边的图看不太懂,故看文档。
help(aggr),得到的文档相关部分如下,还是看不太懂,就这样吧,大概参考一下。:

Often it is of interest how many missing/imputed values are contained in each variable. Even more interesting, there may be certain combinations of variables with a high number of missing/imputed values.
If combined is FALSE, two separate plots are drawn for the missing/imputed values in each variable and the combinations of missing/imputed and non-missing values. The barplot on the left hand side shows the amount of missing/imputed values in each variable. In the aggregation plot on the right hand side, all existing combinations of missing/imputed and non-missing values in the observations are visualized. Available, missing and imputed data are color coded as given by col. Additionally, there are two possibilities to represent the frequencies of occurrence of the different combinations. The first option is to visualize the proportions or frequencies by a small bar plot and/or numbers. The second option is to let the cell heights be given by the frequencies of the corresponding combinations. Furthermore, variables may be sorted by the number of missing/imputed values and combinations by the frequency of occurrence to give more power to finding the structure of missing/imputed values.
If combined is TRUE, a small version of the barplot showing the amount of missing/imputed values in each variable is drawn on top of the aggregation plot.

缺失值填补方法

Hmisc或e1071包:均值、中位数、随机填充

最简单的填充方法是,用随机数、均值或中位数来填充。
Hmisc和e1071包都有。
e1071可能基础一点,我没装过但他自动就有。

#install.packages("Hmisc")
library(Hmisc)
help(impute)data$age=impute(data$age,median)
data$age=impute(data$age,mean)
data$gender = impute(data$gender,"random")

填充前:

填充后:

DMwR2包: 中心填充centralImputation 和knn

在DMwR包里有centralImputation()这个函数是利用数据的中心趋势值来填补缺失值。

6、rpart (略)

mice包的mice函数(略)

评估填补效果(还没实施)

我们需要引进DMwR包install.packages(“DMwR”),library(DMwR)
提到这个包,里面有manyNAs(data,0.2)这么个函数返回的是找出缺失值大于列数20%的行,这个0.2是可以调的。
在计算插补效果需要用到DMwR包的regr.eval()函数
————————————————
版权声明:本文为CSDN博主「Taylor_zhuang」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhuangailing/article/details/79253768

实际发现无法安装DMwR这个包,

package ‘DMwR’ is not available for this version of R

在Stack Overflow上看到,原来这个包已经被删了:
https://cran.r-project.org/web/packages/DMwR/index.html

但我在输入install.packages(DM的时候,自动补全了install.packages("DMwR2")
使用的时候发现,没有regr.eval(), 但是有centralImputation(data)
knnImputation(data)。

根据http://www.360doc.com/content/20/0514/16/65403234_912307344.shtml
,可以用t检验来评估插值情况
t.test(actuals,predictions)

实践

# ###------- 缺失值填补: 均值和中位数 -----------#
#install.packages("Hmisc")
library(Hmisc)
help(impute)
imputed_data = data
imputed_data$age=impute(data$age,mean)        ####平均值 67.06585, 中位数68
imputed_data$gender = impute(data$gender,"random") #0.5170732*
imputed_data$T = impute(data$T,mean) ###  5.733496*,6.0
imputed_data$N = impute(data$N,mean) # 1.268293, 0
imputed_data$M = impute(data$M,mean) # 0.2853186,0
imputed_data$Overall.Survival..Months. = impute(data$Overall.Survival..Months.,mean) # 27.92964,22.0250
imputed_data$Overall.Survival.Status = impute(data$Overall.Survival.Status,"random")# 0.2219512,0
imputed_data$Disease.Free..Months. = impute(data$Disease.Free..Months.,mean) # 26.3183763,20.2700000
imputed_data$Disease.Free.Status = impute(data$Disease.Free.Status,"random") # 0.2087629,
imputed_data$microsatelite = impute(data$microsatelite,mean) # 0.5756098*head(imputed_data)
is.na(imputed_data)

[个人笔记]R语言:缺失值NA处理相关推荐

  1. R语言缺失值替换:缺失的值(NA)替换每个分组最近的非缺失值

    R语言缺失值替换:缺失的值(NA)替换每个分组最近的非缺失值 目录 R语言缺失值替换:缺失的值(NA)替换每个分组最近的非缺失值

  2. R语言使用na.omit函数删除向量数据中的缺失值(NA值)

    R语言使用na.omit函数删除向量数据中的缺失值(NA值) 目录 R语言使用na.omit函数删除向量数据中的缺失值(NA值) R 语言特点 R语言使用na.omit函数删除向量数据中的缺失值(NA ...

  3. R语言使用na.omit函数删除矩阵matrix数据中的缺失值(NA值)

    R语言使用na.omit函数删除矩阵matrix数据中的缺失值(NA值) 目录 R语言使用na.omit函数删除矩阵matrix数据中的缺失值(NA值) R 语言特点 R语言使用na.omit函数删除 ...

  4. R语言缺失值:is.na函数查看数据对象中是否包含缺失值NA、特定数据编码为编码为缺失值NA、na.rm=TRUE参数获得有效的计算结果、complete.cases函数筛选数据、na.omit函数

    R语言缺失值:is.na函数查看数据对象中是否包含缺失值NA.特定数据编码为编码为缺失值NA.na.rm=TRUE参数获得有效的计算结果.complete.cases函数筛选数据.na.omit函数 ...

  5. R语言缺失值插补之simputation包

    获取更多R语言和生信知识,请欢迎关注公众号:医学和生信笔记 医学和生信笔记 公众号主要分享:1.医学小知识.肛肠科小知识:2.R语言和Python相关的数据分析.可视化.机器学习等:3.生物信息学学习 ...

  6. R语言:na.fail和na.omit

           实际工作中,数据集很少是完整的,许多情况下样本中都会包括若干缺失值NA,这在进行数据分析和挖掘时比较麻烦.  R语言通过na.fail和na.omit可以很好地处理样本中的缺失值. na ...

  7. R语言缺失值判断与处理-2

    R语言-缺失值判断以及处理 上次说了关于某个固定值,异常值,缺失值等的固定位置,今天详细说下如果数据列中出现缺失值,该如何处理. 向量组中的不说了,一般实践都是数据框. 1.数据框缺失值判断 数据框类 ...

  8. 笔记—R语言做矩阵散点图

    笔记-R语言做矩阵散点图 #install.packages("corrgram") #install.packages("GGally") install.p ...

  9. R语言is.na函数实战(删除、替换、统计、条件判断等)

    R语言is.na函数实战(删除.替换.统计.条件判断等) 目录 R语言is.na函数实战(删除.替换.统计.条件判断等) #NA.NaN.Nu

  10. R语言入门——NA、NAN、Inf(缺失值的识别)

    目录 00引言 1.Inf 2.NAN(Not a Number) 3.NA与逻辑运算符 4.总结 00引言 这篇的主角是R语言中缺失值(NA)的识别与提取.先介绍NAN.Inf及其运算.在最终介绍缺 ...

最新文章

  1. CVD-ALD前驱体材料
  2. 使用Metasploit工作区
  3. 前端性能优化—js代码打包
  4. Android MIPI转LVDS显示屏调试--- bootloader阶段显示(4)
  5. Linux下打造仿Mac系统桌面
  6. boost::mp11::mp_max相关用法的测试程序
  7. BZOJ3611: [Heoi2014]大工程
  8. censtos6.5安装java 8_Centos6.5 安装JDK
  9. 升级Tornado到4后weibo oauth登录不了
  10. design php 如何使用ant_Ant Design Pro如何调用接口 | Ant Design Pro渲染数据 绑定数据...
  11. 从G1设计到堆空间调整
  12. Layui 表格渲染
  13. python不可变变量_python的可变变量和不可变变量
  14. Lua热补丁方案(HotFix)
  15. 编程十年 (13):毁人不倦1
  16. vue中的路由对象和路由记录
  17. 2019 ,摧枯拉朽式的AI洗牌之路
  18. T解 湖南师大附中集训 模拟考试1
  19. 如何查看公众号文章的排版格式字体大小
  20. 虚拟化技术—基础(1)

热门文章

  1. 设计师收藏网站网址大全
  2. 强大的PubMed插件Scholarscope
  3. GAMES101 作业0 环境配置 PC下简单配置i
  4. 如何以信创软硬件来实现隐私计算的大规模产业化,听听冲量怎么说
  5. Nginx网站服务(安装nginx、平滑升级nginx、nginx各种访问配置)
  6. 求奇数分之一序列前N项和
  7. 输入一个整数,判断它能否被3、5、7整除,并输出以下信息之一:
  8. Bear and Big Brother
  9. python切片是什么意思_python切片的理解
  10. 美容院微信小程序玩法大全