R语言入门
一、R语言编码规则
1.1 控制台规则
- R控制台是交互式执行环境,输入代码后按回车执行。
- 使用
#表示注释,注释内容不执行。
r
# 控制台直接输入表达式会输出结果
1 + 2 # 输出 3
# 上一行代码未完成时,控制台会显示 + 提示符
> 1 +
+ 2 # 表示上一行未结束,继续输入
1.2 赋值语句的写法
- 推荐使用
<-作为赋值符。 - 也可以用
=,但语义略有不同。
r
# 使用 <- 赋值
x <- 10 # 变量 x 被赋值为 10
# 使用 = 赋值(在R中也可用,但推荐 <-)
y = 20 # 变量 y 被赋值为 20
# 赋值后直接输出
z <- 30
z # 输出 30
1.3 输入的规则
- 使用
c()创建向量。 - 引号定义字符串。
r
# 输入数值向量
scores <- c(85, 90, 78) # 创建包含三个分数的向量
# 输入字符串向量
names <- c("张三", "李四", "王五") # 引号表示字符串
# 输入单个字符串
city <- "北京"
二、R语言基础
2.1 常用保留字
保留字不能作为变量名:if, else, repeat, while, function, for, in, next, break, TRUE, FALSE, NULL, Inf, NaN, NA 等。
r
# 错误示例(不能执行为变量名)
# if <- 10 # 错误,if是保留字
# 正确命名
my_if <- 10 # 可以包含保留字但不能完全等于保留字
2.2 变量
- 变量名可以包含字母、数字、点、下划线,但不能以数字开头。
r
# 合法的变量名
age <- 25
student.name <- "张三"
.score <- 98
# 查看变量
ls() # 列出当前环境所有变量
2.3 基本数据类型
| 类型 | 示例 |
|---|---|
| 数值型 numeric | 3.14 |
| 整型 integer | 5L |
| 字符型 character | "hello" |
| 逻辑型 logical | TRUE, FALSE |
| 复数型 complex | 2+3i |
r
# 数值型
a <- 3.14
class(a) # 输出 "numeric"
# 整型(加L)
b <- 10L
class(b) # "integer"
# 字符型
c <- "R语言"
class(c) # "character"
# 逻辑型
d <- TRUE
class(d) # "logical"
# 复数型
e <- 2 + 3i
class(e) # "complex"
2.4 运算符
算术运算符
r
x <- 10
y <- 3
x + y # 加法:13
x - y # 减法:7
x * y # 乘法:30
x / y # 除法:3.333...
x %% y # 取余:1
x %/% y # 整除:3
x ^ y # 幂:1000
比较运算符
r
x <- 5
y <- 8
x > y # FALSE
x < y # TRUE
x == y # FALSE
x != y # TRUE
x >= 5 # TRUE
逻辑运算符
r
a <- TRUE
b <- FALSE
a & b # FALSE(向量与)
a | b # TRUE(向量或)
!a # FALSE
a && b # FALSE(仅第一个元素)
三、函数
3.1 内置函数
R 内置大量函数,如 sum(), mean(), length() 等。
r
# 数值向量
nums <- c(1, 2, 3, 4, 5)
sum(nums) # 求和:15
mean(nums) # 均值:3
length(nums) # 长度:5
max(nums) # 最大值:5
min(nums) # 最小值:1
3.2 自定义函数的创建和调用
r
# 定义一个计算两数之和的函数
my_sum <- function(a, b) {
# 函数体:计算并返回结果
result <- a + b
return(result) # 返回结果
}
# 调用函数
my_sum(3, 5) # 输出 8
3.3 返回值
- 使用
return()显式返回。 - 如果没有
return(),返回最后一个表达式的值。
r
# 显式返回
add <- function(x, y) {
return(x + y)
}
add(2, 3) # 5
# 隐式返回(最后一行自动返回)
multiply <- function(x, y) {
x * y # 没有return,自动返回这个结果
}
multiply(4, 5) # 20
四、字符串
4.1 字符串规范
- 可用单引号
'或双引号"。
r
s1 <- "Hello"
s2 <- 'World'
s3 <- "I'm learning R" # 双引号内可包含单引号
4.2 字符串常用函数
连接字符串 paste() / paste0()
r
# paste 默认用空格分隔
s <- paste("Hello", "R", "language")
print(s) # "Hello R language"
# paste0 无分隔符
s2 <- paste0("Hello", "R")
print(s2) # "HelloR"
# 自定义分隔符
s3 <- paste("A", "B", "C", sep = "-")
print(s3) # "A-B-C"
# 连接向量和字符串
names <- c("张三", "李四")
greeting <- paste("你好", names, sep = ", ")
print(greeting) # "你好, 张三" "你好, 李四"
计算字符串长度 nchar()
r
text <- "R语言"
len <- nchar(text) # 统计字符个数(中英文都算1)
print(len) # 2
字符大小写转换
r
msg <- "Hello R"
# 转大写
toupper(msg) # "HELLO R"
# 转小写
tolower(msg) # "hello r"
截取字符串 substr()
r
s <- "abcdefg"
# 提取第2到第4个字符
substr(s, 2, 4) # "bcd"
# 替换部分字符串
substr(s, 2, 4) <- "XYZ"
print(s) # "aXYZefg"
查询字符串 grep() / grepl()
r
fruits <- c("apple", "banana", "grape")
# grep 返回匹配的位置索引
grep("ap", fruits) # 返回 1
# grepl 返回逻辑向量
grepl("na", fruits) # FALSE TRUE FALSE
# 查询子串是否存在
text <- "I love R language"
grepl("love", text) # TRUE
五、包的安装与使用
5.1 查看已安装的包
r
# 查看所有已安装包
installed.packages()
# 查看已加载的包
search()
5.2 包的安装
r
# 从CRAN安装包
install.packages("ggplot2") # 安装绘图包
install.packages("dplyr") # 安装数据处理包
# 安装多个包
install.packages(c("tidyr", "stringr"))
5.3 包的使用
r
# 加载包(每次使用前需加载)
library(ggplot2)
# 或者使用 require()
require(dplyr)
# 查看包帮助
help(package = "ggplot2")
# 卸载包
detach("package:ggplot2", unload = TRUE)
六、R语言帮助文档
6.1 help菜单命令
r
# 查看具体函数的帮助
help(mean)
?mean # 同上,更简洁
# 按关键词搜索
help.search("regression")
??regression # 同上
# 示例演示
example(mean) # 运行mean函数的示例
6.2 帮助函数
r
# 查看函数参数
args(plot)
# 查看函数源码(非封闭函数)
print(sum)
# 快速查看示例代码
demo() # 所有演示
demo(graphics) # 图形演示
七、要点回顾代码示例
r
# 1. 赋值与基本运算
x <- 10
y <- 20
z <- x + y
print(z) # 30
# 2. 向量操作
scores <- c(88, 92, 85)
mean_score <- mean(scores) # 88.333
max_score <- max(scores) # 92
# 3. 字符串处理
name <- "R语言"
nchar(name) # 2
big <- toupper("hello") # "HELLO"
# 4. 自定义函数
square <- function(n) {
return(n ^ 2)
}
square(5) # 25
# 5. 安装并加载包
install.packages("stringr") # 安装
library(stringr) # 加载
# 6. 查看帮助
?mean