R语言学习--Day01--数据清洗初了解andR的经典筛选语法

当我们在拿到一份数据时,是否遇到过想要分析数据却无从下手?通过编程语言去利用它时发现有很多报错不是来源于代码而是因为数据里有很多脏数据;在这个时候,如果你会用R语言来对数据进行清洗,这会让你的效率提升很多。

R语言的典型使用场景

统计分析
  • 执行假设检验(t检验、卡方检验)、回归分析、方差分析等

  • 优势:内置stats包提供100+统计函数,如lm(), aov()

数据可视化
  • 绘制统计图表(散点图、箱线图、热力图)

  • 优势:ggplot2语法比Python的matplotlib更直观

学术研究
  • 自动生成可重复报告(R Markdown)

  • 对比:Word+Excel手动操作效率低

数据清洗的必备知识

1、缺失值处理:很多时候出于不同的原因,像连接表格时有的列是连接前不具备的,亦或是数据在加载时发生错误,我们会在数据里发现很多NA值,当然这并不意味着它代表数据有问题,也有可能是数据本身的特点,NA代表了某种属性,此时我们既可以将其替换成0或1,也可以新建一列来标记这个缺失值

2、数据类型检查:在R语言中,我们会经常看到把时间数据转换为日期格式,或者把数据处理完后因子化的操作,这可以让我们得以在后续进行类似于统计数据分布,更好地观察到数据结构

3、管道化操作:在编写脚本的过程中,我们在编写某一个数据时会在中间穿插"%>%"的符号,代表后续操作在同一管道中进行,也就是可以在不干扰其他数据的情况下,对单独的数据进行操作,避免出现全局变量的影响

R语言的常见筛选语法

基础筛选
复制代码
# 按行筛选
df[df$age > 18, ]
subset(df, age > 18 & gender == "F")

# 按列筛选
df[, c("id", "name")]
dplyr包特有的语法
复制代码
library(dplyr)
df %>%
  filter(age %in% 20:30) %>%          # 年龄在20-30岁
  select(starts_with("test")) %>%     # 选择以test开头的列
  arrange(desc(score)) %>%           # 按分数降序
  distinct(id, .keep_all = TRUE)     # 去重保留第一条
条件替换
复制代码
df %>%
  mutate(grade = case_when(
    score >= 90 ~ "A",
    score >= 60 ~ "B",
    TRUE ~ "C"  # 默认值
  ))
处理缺失值
复制代码
na.omit(df)                          # 删除含NA的行
df[complete.cases(df), ]             # 等价写法
df %>% drop_na(score)                # 删除score列NA的行na.omit(df)                          # 删除含NA的行
df[complete.cases(df), ]             # 等价写法
df %>% drop_na(score)                # 删除score列NA的行
特殊筛选
复制代码
diag.raw[grep(急性心衰|(衰竭),]$ahf <- 1 #通过筛选正则化的模糊关键词,直接创建新列并赋予值
相关推荐
无心水19 小时前
15、云原生架构设计理论与实践 核心考点与学习笔记
笔记·学习·云原生·架构师·软考·系统架构设计师·软考系统架构设计师
动词ing19 小时前
【学习笔记】51单片机 独立按键控制LED显示二进制
笔记·学习·51单片机
叼烟扛炮19 小时前
Linux 学习笔记(三十九):网络基石——TCP/IP 模型与 UDP 实战
linux·运维·网络·笔记·学习·tcp/ip
前进的李工20 小时前
Agent 学习笔记 04:KV Cache 与上下文缓存
笔记·学习·缓存·agent·注意力机制·kv cache·prompt cache
Z21-X20 小时前
云原生运维笔记:打通OpenStack的任督二脉——从Neutron网络踩坑到Swift与Heat硬核实战
运维·笔记·学习·云原生
旖旎夜光20 小时前
LCR 170:交易逆序对的总数(归并排序) —— 题解
c++·学习·算法·leetcode·排序算法
小向是个Der1 天前
嵌入式进阶——MCU上电后的动作
c语言·单片机·mcu·学习·链接脚本
辣知1 天前
辣知·化智93 被历史尘封的鬻子
学习
每天题库1 天前
西藏安全员 A 证备考真题题库 强化重点知识刷题提升通过率
学习·安全·考试·题库·考证
Be for thing1 天前
PyTorch基础|Tensor张量详解,张量创建、数据类型与常用操作
pytorch·学习·1024程序员节