R语言dplyr包使用指南安装和加载

R语言dplyr包使用指南安装和加载

install.packages("dplyr")
library(dplyr)

核心函数1. select() - 选择列

# 选择特定列
mtcars %>% select(mpg, cyl, hp)

# 按范围选择列
mtcars %>% select(mpg:hp)

# 排除某些列
mtcars %>% select(-gear, -carb)

2. filter() - 筛选行

# 单个条件
mtcars %>% filter(mpg > 20)

# 多个条件
mtcars %>% filter(mpg > 20 & cyl == 4)

# 使用 %in%
mtcars %>% filter(cyl %in% c(4, 6))

3. mutate() - 创建/修改列

# 创建新列
mtcars %>% mutate(mpg_per_cyl = mpg / cyl)

# 修改现有列
mtcars %>% mutate(hp = hp * 1.1)

# 创建多列
mtcars %>% mutate(
efficiency = mpg / hp,
high_mpg = mpg > 20
)

4. arrange() - 排序

# 升序排列
mtcars %>% arrange(mpg)

# 降序排列
mtcars %>% arrange(desc(mpg))

# 多列排序
mtcars %>% arrange(cyl, desc(mpg))

5. summarise() - 汇总数据

# 基本汇总
mtcars %>% summarise(
avg_mpg = mean(mpg),
max_hp = max(hp),
count = n()
)

6. group_by() - 分组操作

# 分组并汇总
mtcars %>% 
group_by(cyl) %>% 
summarise(
avg_mpg = mean(mpg),
count = n()
)

# 分组并创建新列
mtcars %>% 
group_by(cyl) %>% 
mutate(mpg_rank = rank(desc(mpg)))

管道操作符 %>%

# 链式操作
result <- mtcars %>%
filter(mpg > 15) %>%
select(mpg, cyl, hp) %>%
mutate(efficiency = mpg / hp) %>%
arrange(desc(efficiency)) %>%
head(10)

实用辅助函数count() - 计数

mtcars %>% count(cyl)
mtcars %>% count(cyl, gear)

distinct() - 去重

mtcars %>% distinct(cyl)
mtcars %>% distinct(cyl, gear)

slice() - 按位置选择行

mtcars %>% slice(1:5) # 前5行
mtcars %>% slice_max(mpg, n = 3) # mpg最大的3行
mtcars %>% slice_min(mpg, n = 3) # mpg最小的3行

高级示例复杂数据处理

# 实际应用示例
sales_summary <- sales_data %>%
filter(date >= "2023-01-01") %>%
group_by(region, product) %>%
summarise(
total_sales = sum(amount),
avg_price = mean(price),
transactions = n(),
.groups = "drop"
) %>%
mutate(
sales_rank = rank(desc(total_sales)),
high_performer = total_sales > quantile(total_sales, 0.8)
) %>%
arrange(region, desc(total_sales))

条件操作

# 使用 case_when()
mtcars %>%
mutate(
size_category = case_when(
cyl <= 4 ~ "小型",
cyl <= 6 ~ "中型",
TRUE ~ "大型"
)
)

专业R语言辅导 | Python编程 | 数据分析 Data analysis | 统计分析 Statistics | 数据挖掘 Data mining | 机器学习 Machine learning | |统计分析 Statistics|STATS 202|STATS 203|STAT 110|STAT 104|STAT 705|STAT 707|STAT4203|STAT4204|STAT4205|STAT4206|STAT 133|STAT 134|STAT 101A|STAT 100A|STAT 581|STAT 520|STAT 521|STAT 4500|STAT 5805|STAT 5806|STAT 4600|STAT30001|STAT3001|STAT3002|STAT3003|STAT3004|STAT3005|STAT3006|STAT5001|STAT5002|STAT5003|STAT5004|

http://www.rdaizuo.com

http://www.daixie.it.com

http://www.rcodedaixie.com

http://www.rdaima.com

关键提示

· 使用 %>% 进行链式操作,代码更易读

· group_by() 会影响后续所有操作,直到使用 ungroup()

· 在 summarise() 中使用 .groups = "drop" 避免分组警告

· n() 用于计算分组内的行数

· 辅助函数如 starts_with()、ends_with()、contains() 可与 select() 配合使用

常用选择器函数

# 选择以特定字符开头的列
mtcars %>% select(starts_with("m"))

# 选择以特定字符结尾的列
mtcars %>% select(ends_with("p"))

# 选择包含特定字符的列
mtcars %>% select(contains("a"))

# 选择匹配正则表达式的列
mtcars %>% select(matches("^c"))

数据类型转换

```r # 转换数据类型 mtcars %>% mutate( cyl = as.factor(cyl), vs = as.logical(vs), gear = as.character(gear) )

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值