汇知百科
白蓝主题五 · 清爽阅读
首页  > 路由设置

R语言写脚本:从数据处理到自动化小任务

很多人以为R语言只是统计分析和画图的工具,其实它也能像Python或Shell一样写脚本,完成自动任务。比如你每天要整理一份销售报表,手动操作费时还容易出错,用R写个脚本,一键运行就搞定。

为什么用R语言写脚本?

R在数据处理方面有天然优势。内置向量、数据框结构,加上dplyr、tidyr这些包,清洗数据几行代码就能完成。如果你的工作经常和Excel、CSV、数据库打交道,R脚本比手动操作高效太多。

而且Rscript命令可以直接在终端运行脚本,不依赖图形界面。服务器上跑定时任务、批量处理日志文件,都很合适。

一个简单的R脚本例子

假设你有一堆CSV格式的用户行为日志,想合并成一个总表,并统计每日访问量。可以写个R脚本自动处理:

library(dplyr)
library(readr)

# 读取目录下所有csv文件
files <- list.files("logs/", pattern = "*.csv", full.names = TRUE)

data_list <- lapply(files, read_csv)
combined_data <- bind_rows(data_list)

# 添加日期列并统计每日人数
daily_summary <- combined_data %>%
mutate(date = as.Date(timestamp)) %>%
count(date, name = "visits")

# 保存结果
write_csv(daily_summary, "output/daily_report.csv")
print("日报生成完成!")

如何运行R脚本

把上面的代码保存为generate_report.R,然后在终端执行:

Rscript generate_report.R

如果想每天早上8点自动运行,可以配合crontab(Linux/Mac)设置定时任务:

0 8 * * * Rscript /path/to/generate_report.R

实用技巧

脚本里可以用argparse包接收命令行参数。比如指定输入路径或日期范围:

library(argparse)

parser <- ArgumentParser()
parser$add_argument("--input", default = "logs/")
parser$add_argument("--date", default = Sys.Date())

args <- parser$parse_args()

这样调用脚本时就可以传参:Rscript script.R --input ./new_logs --date 2024-05-20,灵活性大大提升。

再复杂一点,还能用R脚本调用API获取数据、发送邮件通知结果,或者结合Shiny做简单Web接口。别再只把它当绘图工具了,R写脚本也能扛活。