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|
关键提示
· 使用 %>% 进行链式操作,代码更易读
· 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) )
1106

被折叠的 条评论
为什么被折叠?



