首页 > 其他分享 >数据清洗全流程总结

数据清洗全流程总结

时间:2024-05-23 11:54:08浏览次数:11  
标签:总结 no mtcars 数据 流程 carb 清洗 data airquality

# 加载数据集
data(airquality)

# 查看数据集
str(airquality)
head(airquality)

查看NA

colSums(is.na(airquality))

去除NA

airquality_no_na <- na.omit(airquality)

再次check NA

colSums(is.na(airquality_no_na))

查看duplicates

duplicated_rows <- duplicated(airquality_no_na)
sum(duplicated_rows)

去除duplicates

airquality_no_dup <- unique(airquality_no_na)

查看typo(在这个例子中,数据集没有文本列,所以跳过这一步)用另外一个数据集举例子

# 加载数据集
data(mtcars)
mtcars
# 假设在"carb"列中,"4"被错误地输入为"4x"
mtcars$carb[c(1, 10)] <- "4x"

# 查看"carb"列的唯一值
unique(mtcars$carb)
# 查找包含"x"的行(假设"x"是一个typo标志)
grep("x", mtcars$carb)
# 将"4x"替换为"4"
mtcars$carb <- gsub("4x", "4", mtcars$carb)

# 再次查看"carb"列的唯一值,确认typo已被去除
unique(mtcars$carb)

进行长宽数据转换(如果有必要)

长数据转换

library(tidyr)
airquality_long <- gather(airquality_no_dup, key = "variable", value = "value", -Month, -Day)
  • airquality_no_dup:这是输入数据集,它应该是一个数据框(data frame)或类似的结构,其中包含多个列,这些列将被转换成长格式。

  • key:这是新数据集中用于存储原始列名的列名。在这个例子中,它被设置为 "variable"。

  • value:这是新数据集中用于存储原始列值的列名。在这个例子中,它被设置为 "value""。

-Month 和 -Day:这些是选择器,表示在转换过程中,Month 和 Day 这两列将保持不变,不被转换为长格式。- 前缀表示排除这些列。

宽数据转换

# 假设df是长格式的数据框
wide_data <- df %>%
  pivot_wider(names_from = column_to_spread, values_from = column_to_copy)
data_wide <- airquality_long %>%
  pivot_wider(names_from = variable,values_from = value)

再次查看数据集确认满足要求,清洗完成

str(airquality_long)
head(airquality_long)
head(data_wide)

标签:总结,no,mtcars,数据,流程,carb,清洗,data,airquality
From: https://www.cnblogs.com/chen-heybro/p/18208112

相关文章

  • GDI+画工作流图的一些总结
    流程图由节点跟连线组成,先画节点,再根据节点做连线。1:连线没有可用的控件,而节点可以直接使用Button类充当,使用Panel做画版,拖动button后会自动出现滚动条,且不需要自己做坐标转换。 1.1:不方便的地方在于如果让节点基础Button,那么属性设置面板里会出现一堆的控件属性,需要再定义个......
  • 构建高效的软件研发生命周期:从技术选型到监控运维的完整流程
    引言现代软件研发已经超越了简单的编码和发布阶段,演化成了一个复杂的生命周期过程,涵盖了技术选型、初始化、开发、测试、部署、监控和运维等多个环节。这些环节相互关联,共同确保项目的成功交付和持续优化。本文将深入探讨如何构建高效的软件研发生命周期,包括关键步骤、最佳实践和......
  • 每日总结
    PreparedStatement可以防止sql注入问题,效率更高先进行预编译sql,将要设置的字段值使用占位符本质:预编译会将传递进来的参数包裹成字符,而单引号会被转义字符转换为空内容,有效的防止sql注入的问题CRUD--SELECTStringsql="select*fromuserswhereid=?";st=......
  • 【学习整理】编程知识点总结
    编程知识点总结查询接口实现查询接口示例查询排序@SortDefault查询参数配置@ApiIgnore@Param消息发送常量定义......
  • 相似标准型 总结
    ......
  • 摸清自定义流程表单开发优点 实现降本增效!
    随着社会竞争压力的增大,很多企业都希望实现降本增效提质的办公效果。那么,借助什么样的软件平台可以让企业在提升市场竞争力的前提下,还能降低开发成本,提高成效?低代码技术平台是目前流行于中小企业办公职场中的平台产品,其中自定义流程表单开发优势特点多、灵活高效、可视化操作界面,......
  • 3/25数仓面试总结
    数据采集模块 主要采集什么 业务数据和用户行为数据 包括 页面浏览记录,启动记录,错误记录,曝光记录,动作记录格式包括页面日志和启动日志JSON格式?flume怎么采集   第一次见没有sink的flume   业务数据怎么说?sku商品表 平台表流水表 退单表订......
  • 4/7一文讲透网络传输流程 epoll内核模型 reactor用户空间处理模型
    epoll是内核如何将由层层协议栈去除tcp头,根据四元组查socket文件,将sk_buffer放到socket接受队列的 reactor  五种IO模型,三种线程处理模型     回溯算法之全排列 将所有需要用到的数组包括路径数组状态数组都初始化好然后都放进dfs参数里面 这......
  • 总结全网C#取随机数方法(整型,浮点型,字符串)
    原文链接:https://blog.csdn.net/m0_65636467/article/details/127770112C#取随机数(Random篇)一、整数随机数//10以内的随机整数Randomrd=newRandom();intn=ran.Next(10);//1-100的随机整数intp=rd.Next(1,100);//大于等于1小于100的整数intNext(intmi......
  • 站在岸上学不会游泳 | 算法校招生的高效成长总结
       在这个由数据编织、由算法驱动的时代,AI大模型正成为推动社会进步的重要力量。我们不仅是变革的见证者,更是推动者和塑造者。感谢零售UP技术人栏目的邀请,本文借此机会回顾一下自己的算法之路上的一些故事和思考,希望能带给读者一些帮助。介绍自己我是2020届校招生,INFJ提倡......