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

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
相关推荐
AI人工智能+电脑小能手1 小时前
【大白话说Java面试题 第41题】【JVM篇】第1题:JVM由哪些部分组成?
java·开发语言·jvm·后端·面试
0xDevNull1 小时前
ConcurrentHashMap 与 Hashtable 深度对比
java·开发语言
happymaker06261 小时前
Spring学习日记——Day01(简单配置使用Spring,手写Spring的简单工厂模式)
java·学习·spring
木易 士心1 小时前
深度解析:一个 Java 对象究竟占用多少字节?
java·开发语言·后端
水云桐程序员9 小时前
C++可以写手机应用吗
开发语言·c++·智能手机
测试员周周9 小时前
【AI测试智能体】为什么传统测试方法对智能体失效?
开发语言·人工智能·python·功能测试·测试工具·单元测试·测试用例
RSTJ_162510 小时前
PYTHON+AI LLM DAY THREETY-NINE
开发语言·人工智能·python
赏金术士11 小时前
Kotlin 从入门到进阶 之函数模块(核心基础)(二)
android·开发语言·kotlin
HalvmånEver12 小时前
MySQL的索引
android·linux·数据库·学习·mysql