R语言入门学习教程,从入门到精通,初识R语言(1)

初识R语言

1.1 R语言概述

知识点
  • R语言是一种用于统计计算和图形的编程语言和环境。
  • 基于S语言,由Ross Ihaka和Robert Gentleman开发。
  • 开源、免费,拥有庞大的包生态系统(CRAN)。
语法 / 概念要点
  • R是一种解释型语言。
  • 支持向量化操作、函数式编程、面向对象编程。
案例:查看R版本信息
r 复制代码
# 查看当前R的版本信息
# version 是一个内置列表,包含R的版本号、平台、编译日期等
print(version)

# 只输出版本号字符串
# R.version.string 是version中的一个元素,返回"R version x.x.x (Year-Month-Day)"
print(R.version.string)

1.2 R语言简介

知识点
  • R适用于数据分析、统计建模、可视化、机器学习。
  • 核心特性:
    • 向量化计算
    • 缺失值处理(NA, NULL)
    • 数据框(data.frame)
    • 丰富的统计函数
语法 / 概念要点
  • c() 创建向量
  • mean(), sum(), summary() 等基础统计函数
案例:基本统计计算
r 复制代码
# 创建一个数值向量,包含5个学生的成绩
# c() 函数用于组合元素成向量
scores <- c(85, 90, 78, 92, 88)

# 计算平均分
# mean() 计算向量的算术平均值
average <- mean(scores)
print(paste("平均分:", average))  # paste() 拼接字符串

# 计算总分
# sum() 计算向量所有元素之和
total <- sum(scores)
print(paste("总分:", total))

# 输出成绩摘要(最小值、四分位数、最大值等)
# summary() 对向量给出统计摘要
print(summary(scores))

1.3 为什么要学习R语言

知识点
  • 统计学家和数据科学家的首选工具之一。
  • 可视化能力强(ggplot2、plotly等)。
  • 可重现分析(R Markdown、Quarto)。
  • 与C/C++/Python可互操作。
语法 / 概念要点
  • 学习R的理由包括:免费、社区活跃、适合探索性数据分析(EDA)。
案例:简单数据可视化(基础绘图)
r 复制代码
# 准备数据:两个学生的四次考试成绩
# 第一个学生的成绩
student1 <- c(78, 82, 85, 88)

# 第二个学生的成绩
student2 <- c(65, 70, 75, 80)

# 考试次数(1到4)
exams <- c(1, 2, 3, 4)

# 绘制折线图
# plot() 是R基础绘图函数
# type = "o" 表示点线结合(both points and lines)
# col = "blue" 设置颜色为蓝色
# xlab/ylab 设置x轴和y轴标签
# main 设置图表主标题
plot(exams, student1, type = "o", col = "blue",
     xlab = "考试次数", ylab = "分数",
     main = "学生成绩趋势")

# lines() 在已有图上添加新线
# type = "o" 同样点线结合
# col = "red" 红色线条
lines(exams, student2, type = "o", col = "red")

# 添加图例
# "topleft" 表示图例放在左上角
# legend 是图例文字
# col 对应颜色
# lty 线型(1为实线)
# pch 点的形状(默认相同)
legend("topleft", legend = c("学生1", "学生2"),
       col = c("blue", "red"), lty = 1, pch = 1)

1.4 R开发环境的下载与安装

知识点
语法 / 概念要点
  • 安装后通过 library() 加载包
  • 通过 install.packages() 安装扩展包
案例:安装并加载一个R包(以ggplot2为例)
r 复制代码
# 安装ggplot2包(可视化包)
# install.packages() 从CRAN下载并安装包
# 第一次运行可能需要选择镜像
# 如果已安装则不需要重复运行
install.packages("ggplot2")

# 加载ggplot2包到当前会话
# library() 会加载包,并可能输出提示信息
library(ggplot2)

# 检查是否加载成功
# "ggplot2" %in% loadedNamespaces() 判断包是否在已加载命名空间中
if("ggplot2" %in% loadedNamespaces()){
  print("ggplot2 加载成功!")
} else {
  print("加载失败")
}

1.5 下载R开发环境

知识点
  • Windows:下载.exe安装包
  • macOS:下载.pkg文件
  • Linux:通过包管理器(如aptyum
语法 / 概念要点
  • 选择CRAN镜像(清华大学、中科大等国内镜像更快)
案例:设置CRAN镜像(避免下载慢)
r 复制代码
# 查看当前默认镜像
# getOption() 获取R全局选项
getOption("repos")

# 设置国内镜像(例如清华大学镜像)
# options() 修改R全局选项
# repos 参数指定CRAN仓库URL
options(repos = c(CRAN = "https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))

# 验证是否设置成功
print(getOption("repos"))

# 此后安装包会自动使用该镜像
install.packages("dplyr")  # 示例安装

1.6 安装R开发环境

知识点
  • 默认安装路径(Windows:C:\Program Files\R\
  • 注意勾选"64-bit"和"32-bit"根据需要。
  • 安装完成后可通过RGui或终端运行R
语法 / 概念要点
  • getwd() 查看工作目录
  • setwd() 修改工作目录
案例:查看和设置工作目录
r 复制代码
# 查看当前工作目录(working directory)
# getwd() 返回当前R会话的文件路径
current_path <- getwd()
print(paste("当前工作目录:", current_path))

# 设置新的工作目录(请替换为你的实际路径)
# setwd() 修改工作目录,路径中建议使用"/"或"\\"
# 示例:setwd("C:/Users/YourName/Documents/Rstudy")

# 先检查目录是否存在,避免错误
new_path <- "C:/R_workspace"
if(dir.exists(new_path)){
  setwd(new_path)
  print(paste("工作目录已更改为:", getwd()))
} else {
  print(paste("目录不存在:", new_path, ",请先创建该目录"))
}

1.7 编写第一个R语言程序

知识点
  • R脚本文件扩展名:.R
  • 注释使用 #
  • 常见输出:print(), cat()
  • 变量赋值:<-=
语法 / 概念要点
  • <- 是推荐赋值符
  • cat() 可拼接多种类型并输出
  • ls() 查看当前环境变量
  • rm() 删除变量
案例1:经典的"Hello World"
r 复制代码
# 这是单行注释
# 使用print()输出字符串
print("Hello, World!")

# 使用cat()输出,可包含多个元素
# cat() 不会自动添加换行,需用\n
cat("Hello", "R", "Language", "\n")
案例2:变量定义与基础运算
r 复制代码
# 使用 <- 赋值
# 定义一个字符串变量
my_name <- "张三"

# 定义一个数值变量
age <- 25

# 定义身高(单位:米)
height <- 1.75

# 计算BMI = 体重(kg) / 身高(m)^2
# 假设体重70kg
weight <- 70
bmi <- weight / (height^2)   # ^ 表示乘方

# 输出结果
# paste0() 无分隔符拼接字符
print(paste0("姓名: ", my_name))
print(paste0("年龄: ", age))
print(paste0("BMI指数: ", round(bmi, 2)))  # round() 保留两位小数
案例3:清空环境变量
r 复制代码
# 查看当前所有变量
# ls() 返回当前环境中的变量名向量
print(ls())

# 删除单个变量
rm(age)

# 删除多个变量
rm(weight, height)

# 删除所有变量
rm(list = ls())

# 确认环境已清空
print(ls())   # 应输出 character(0)

附录:综合练习案例

练习:个人信息计算与输出

r 复制代码
# 目的:综合运用赋值、打印、计算、注释

# 1. 定义个人信息
student_name <- "李明"
student_id <- "20240001"
math_score <- 92
english_score <- 88
r_score <- 95

# 2. 计算平均分
# 使用c()组合分数
all_scores <- c(math_score, english_score, r_score)
average_score <- mean(all_scores)

# 3. 输出成绩单
cat("==================\n")
cat("学生成绩单\n")
cat("==================\n")
cat("姓名:", student_name, "\n")
cat("学号:", student_id, "\n")
cat("数学:", math_score, "\n")
cat("英语:", english_score, "\n")
cat("R语言:", r_score, "\n")
cat("平均分:", round(average_score, 1), "\n")

# 4. 判断是否优秀(平均分>=90)
if(average_score >= 90){
  cat("评价: 优秀\n")
} else if(average_score >= 80){
  cat("评价: 良好\n")
} else {
  cat("评价: 继续努力\n")
}
相关推荐
代码羊羊2 小时前
Rust 迭代器完全通俗易懂指南(零基础全覆盖)
java·开发语言·rust
MY_TEUCK9 小时前
【Java 后端】SpringBoot 登录认证与会话跟踪实战(JWT + Filter/Interceptor)
java·开发语言·spring boot
QQ24221997910 小时前
基于python+微信小程序的家教管理系统_mh3j9
开发语言·python·微信小程序
沐知全栈开发10 小时前
JavaScript 条件语句
开发语言
RSTJ_162510 小时前
PYTHON+AI LLM DAY THREETY-SEVEN
开发语言·人工智能·python
清水白石00810 小时前
《Python性能深潜:从对象分配开销到“小对象风暴”的破解之道(含实战与最佳实践)》
开发语言·python
Je1lyfish11 小时前
CMU15-445 (2025 Fall/2026 Spring) Project#3 - QueryExecution
linux·c语言·开发语言·数据结构·数据库·c++·算法
Brilliantwxx11 小时前
【C++】 vector(代码实现+坑点讲解)
开发语言·c++·笔记·算法
野生技术架构师11 小时前
2026年最全Java面试题及答案汇总(建议收藏,面试前看这篇就够了)
java·开发语言·面试