R语言速查表
一、基础操作
(一)帮助系统
操作 | 命令示例 | 说明 |
---|---|---|
查看函数帮助 | help(sum) 或 ?sum | 获取 sum 函数的详细用法 |
搜索帮助主题 | help.search("linear regression") | 查找与“linear regression”相关的帮助内容 |
列出所有包含特定字符串的函数 | apropos("mean") | 列出名称中含“mean”的函数 |
启动HTML帮助文档 | help.start() | 在浏览器中打开R的HTML帮助文档 |
(二)工作环境
操作 | 命令示例 | 说明 |
---|---|---|
列出当前环境中的对象 | ls() | 显示当前环境中定义的所有对象 |
以结构化方式列出对象 | ls.str() | 显示对象结构信息 |
获取当前工作目录 | getwd() | 返回当前工作目录路径 |
设置工作目录 | setwd("C:/your/directory") | 将工作目录设置为指定路径 |
退出R | quit() 或 q() | 退出R环境,可选择是否保存工作空间 |
(三)包管理
操作 | 命令示例 | 说明 |
---|---|---|
安装包 | install.packages("dplyr") | 从CRAN安装“dplyr”包 |
更新包 | update.packages() | 更新已安装的包 |
加载包 | library(dplyr) 或 require(dplyr) | 加载“dplyr”包到当前会话 |
查看包帮助 | library(help = "dplyr") | 查看“dplyr”包的帮助文档 |
二、数据输入输出
(一)文件读取
文件类型 | 命令示例 | 说明 |
---|---|---|
CSV文件 | read.csv("data.csv", header = TRUE) | 读取CSV文件,header = TRUE 表示第一行是列名 |
表格分隔文件 | read.delim("data.tsv", header = TRUE) | 读取以制表符分隔的文件 |
固定宽度文件 | read.fwf("data.txt", widths = c(5, 10, 8), header = FALSE) | 按指定宽度读取文件 |
从剪贴板读取 | read.delim("clipboard") | 从剪贴板读取数据,数据格式需符合要求 |
(二)文件保存
操作 | 命令示例 | 说明 |
---|---|---|
保存对象 | save(my_object, file = "my_data.RData") | 将对象my_object 保存到文件 |
保存工作空间 | save.image("workspace.RData") | 保存整个工作空间到文件 |
写入表格数据 | write.table(my_df, file = "output.txt", row.names = FALSE, col.names = TRUE, sep = "\t") | 将数据框写入文件,设置行列名及分隔符 |
重定向输出到文件 | sink("output.txt") print("Hello, R!") sink() | 将输出内容保存到文件,结束后关闭 |
三、数据结构
(一)向量
操作 | 命令示例 | 说明 |
---|---|---|
创建向量 | numeric_vector <- c(1, 2, 3, 4) character_vector <- c("a", "b", "c") | 连接元素创建向量 |
生成序列 | 1:5 seq(1, 10, by = 2) | 生成整数序列,按指定步长生成序列 |
重复向量 | rep(1, times = 5) rep(c(1, 2), each = 3) | 重复向量元素,按指定次数重复向量 |
索引向量 | numeric_vector[3] numeric_vector[-2] numeric_vector[numeric_vector > 2] | 获取指定位置元素,排除指定位置元素,按条件筛选元素 |
命名向量 | named_vector <- c(a = 1, b = 2, c = 3) named_vector["b"] | 创建命名向量,通过名称获取元素 |
(二)矩阵
操作 | 命令示例 | 说明 |
---|---|---|
创建矩阵 | matrix_data <- matrix(c(1, 2, 3, 4), nrow = 2, ncol = 2) | 按指定行数和列数创建矩阵 |
矩阵索引 | matrix_data[1, 2] matrix_data[1, ] matrix_data[, 2] | 获取指定行列元素,获取指定行所有元素,获取指定列所有元素 |
矩阵转置 | t(matrix_data) | 对矩阵进行转置操作 |
计算矩阵行和、列和 | rowSums(matrix_data) colSums(matrix_data) | 计算矩阵每行元素之和,计算矩阵每列元素之和 |
(三)数据框
操作 | 命令示例 | 说明 |
---|---|---|
创建数据框 | my_df <- data.frame(name = c("Alice", "Bob"), age = c(25, 30), gender = c("F", "M")) | 按列创建数据框 |
索引数据框 | my_df[2, ] my_df[, "age"] my_df$name | 获取指定行数据,获取指定列数据,通过列名获取列数据 |
添加列 | my_df$city <- c("New York", "London") | 在数据框中添加新列 |
合并数据框 | merged_df <- merge(df1, df2, by = "id") | 按指定列合并两个数据框 |
(四)列表
操作 | 命令示例 | 说明 |
---|---|---|
创建列表 | my_list <- list(name = "John", age = 30, hobbies = c("reading", "swimming")) | 创建包含不同类型元素的列表 |
索引列表 | my_list[[2]] my_list[["hobbies"]] my_list$age | 获取指定位置元素,通过名称获取元素,通过$符号获取元素 |
添加元素 | my_list$job <- "Engineer" | 在列表中添加新元素 |
四、数据处理与统计
(一)描述性统计
操作 | 命令示例 | 说明 |
---|---|---|
计算均值 | mean(numeric_vector) | 计算向量的均值 |
计算中位数 | median(numeric_vector) | 计算向量的中位数 |
计算标准差 | sd(numeric_vector) | 计算向量的标准差 |
计算方差 | var(numeric_vector) | 计算向量的方差 |
计算总和 | sum(numeric_vector) | 计算向量所有元素的总和 |
计算最小值、最大值 | min(numeric_vector) max(numeric_vector) | 计算向量的最小值、最大值 |
计算范围 | range(numeric_vector) | 返回向量的最小值和最大值组成的向量 |
计算分位数 | quantile(numeric_vector, probs = c(0.25, 0.75)) | 计算指定分位数的值 |
计算四分位数间距 | IQR(numeric_vector) | 计算四分位数间距 |
计算加权均值 | weighted.mean(numeric_vector, weights = c(1, 2, 1, 2)) | 计算加权均值 |
(二)数据转换
操作 | 命令示例 | 说明 |
---|---|---|
排序 | sorted_vector <- sort(numeric_vector) sorted_df <- my_df[order(my_df$age), ] | 对向量进行排序,对数据框按指定列排序 |
去重 | unique_vector <- unique(numeric_vector) | 获取向量中的唯一值 |
分箱 | binned_vector <- cut(numeric_vector, breaks = c(0, 2, 4, 6)) | 将数据划分为不同区间 |
标准化 | scaled_vector <- scale(numeric_vector) | 对数据进行标准化处理 |
缺失值处理 | na_removed_vector <- na.omit(numeric_vector) na_filled_vector <- ifelse(is.na(numeric_vector), 0, numeric_vector) | 删除含有缺失值的元素,用指定值填充缺失值 |
(三)统计检验与模型
操作 | 命令示例 | 说明 |
---|---|---|
t检验 | t.test(numeric_vector1, numeric_vector2) | 对两个向量进行t检验 |
卡方检验 | chisq.test(observed_data) | 进行卡方检验 |
线性回归 | lm_model <- lm(weight ~ height, data = my_df) | 拟合线性回归模型 |
广义线性模型 | glm_model <- glm(species ~ ., data = iris, family = "binomial") | 拟合广义线性模型 |
聚类分析 - Kmeans | kmeans_result <- kmeans(scale(iris[, 1:4]), centers = 3) | 对数据进行Kmeans聚类 |
聚类分析 - 层次聚类 | d <- dist(iris[, 1:4]) hclust_result <- hclust(d, method = "complete") | 进行层次聚类分析 |
主成分分析 | pca_result <- prcomp(iris[, 1:4]) | 对数据进行主成分分析 |
五、数据可视化
(一)基础绘图
操作 | 命令示例 | 说明 |
---|---|---|
散点图 | plot(x = numeric_vector1, y = numeric_vector2, main = "Scatter Plot", xlab = "X Axis", ylab = "Y Axis") | 绘制散点图 |
直方图 | hist(numeric_vector, main = "Histogram", xlab = "Value", col = "blue") | 绘制直方图 |
箱线图 | boxplot(numeric_vector, main = "Box Plot", ylab = "Value") | 绘制箱线图 |
折线图 | plot(x = 1:length(numeric_vector), y = numeric_vector, type = "l", main = "Line Plot", xlab = "Index", ylab = "Value") | 绘制折线图 |
条形图 | barplot(numeric_vector, main = "Bar Plot", xlab = "Category", ylab = "Value", horiz = FALSE) | 绘制条形图 |
饼图 | pie(numeric_vector, labels = c("A", "B", "C"), main = "Pie Chart") | 绘制饼图 |
(二)高级绘图
操作 | 命令示例 | 说明 |
---|---|---|
三维图 - 表面图 | library(rgl) x <- y <- seq(-2, 2, length = 50) z <- outer(x, y, function(x, y) x^2 + y^2) surface3d(x, y, z) | 绘制三维表面图 |
三维图 - 散点图 | library(rgl) x <- rnorm(100) y <- rnorm(100) z <- rnorm(100) points3d(x, y, z) | 绘制三维散点图 |
等高线图 | contour(x = numeric_vector1, y = numeric_vector2, z = matrix_data, main = "Contour Plot") | 绘制等高线图 |
热力图 | library(ggplot2) ggplot(data = my_df, aes(x = variable1, y = variable2, fill = value)) + geom_tile() | 绘制热力图 |
交互图 - 散点图矩阵 | pairs(iris[, 1:4], main = "Scatter Plot Matrix") | 绘制散点图矩阵 |
交互图 - 箱线图分组 | library(ggplot2) ggplot(data = iris, aes(x = Species, y = Sepal.Length)) + geom_boxplot() | 按分组绘制箱线图 |
(三)图形参数设置
操作 | 命令示例 | 说明 |
---|---|---|
设置标题、坐标轴标签 | plot(x, y, main = "My Plot", xlab = "X Label", ylab = "Y Label") | 设置图形标题和坐标轴标签 |
设置颜色 | plot(x, y, col = "red") hist(numeric_vector, col = rainbow(5)) | 设置绘图颜色,使用彩虹色 |
设置线型 | plot(x, y, type = "l", lty = 2) | 设置线条类型(如虚线) |
设置点形状 | plot(x, y, pch = 16) | 设置点的形状(如实心圆) |
设置坐标轴范围 | plot(x, y, xlim = c(0, 10), ylim = c(0, 20)) | 设置坐标轴的取值范围 |
添加图例 | plot(x, y, col = c("red", "blue"), pch = c(1, 2)) legend("topright", legend = c("Group 1", "Group 2"), col = c("red", "blue"), pch = c(1, 2)) | 添加图例说明图形元素 |
六、编程基础
(一)函数定义与使用
操作 | 命令示例 | 说明 |
---|---|---|
定义函数 | add_numbers <- function(a, b) { <br> return(a + b) <br> } | 定义一个简单的加法函数 |
调用函数 | result <- add_numbers(3, 5) | 调用函数并返回结果 |
匿名函数 | sapply(numeric_vector, function(x) x^2) | 使用匿名函数对向量元素进行平方操作 |
(二)控制流
操作 | 命令示例 | 说明 |
---|---|---|
条件判断 | if (x > 10) { <br> print("x is greater than 10") <br> } else { <br> print("x is less than or equal to 10") <br> } | 根据条件执行不同代码块 |
循环 - for循环 | for (i in 1:5) { <br> print(i) <br> } | 按指定次数循环执行代码块 |
循环 - while循环 | i <- 1 <br> while (i <= 5) { <br> print(i) <br> i <- i + 1 <br> } | 当条件满足时持续循环 |
循环 - repeat循环 | i <- 1 <br> repeat { <br> print(i) <br> if (i == 5) { <br> break <br> } <br> i <- i + 1 <br> } | 无限循环,可通过break 语句跳出 |
跳过循环迭代 | for (i in 1:5) { <br> if (i == 3) { <br> next <br> } <br> print(i) <br> } | 跳过指定迭代 |
(三)向量化操作
操作 | 命令示例 | 说明 |
---|---|---|
向量运算 | numeric_vector1 <- c(1, 2, 3) numeric_vector2 <- c(4, 5, 6) result_vector <- numeric_vector1 + numeric_vector2 | 对两个向量对应元素进行加法运算 |
条件向量化 | new_vector <- ifelse(numeric_vector > 3, "Large", "Small") | 根据条件对向量元素进行替换 |
七、其他实用操作
(一)日期与时间处理
操作 | 命令示例 | 说明 |
---|---|---|
创建日期对象 | my_date <- as.Date("2024-01-01") | 创建日期对象 |
日期格式化 | format(my_date, "%Y-%m-%d") | 将日期格式化为指定字符串 |
日期运算 | new_date <- my_date + 30 | 日期加上指定天数 |
获取日期的年、月、日 | year <- format(my_date, "%Y") month <- format(my_date, "%m") day <- format(my_date, "%d") | 提取日期中的年、月、日 |
(二)随机数生成
分布类型 | 命令示例 | 说明 |
---|---|---|
正态分布 | rnorm(10, mean = 0, sd = 1) | 生成10个均值为0,标准差为1的正态分布随机数 |
均匀分布 | runif(10, min = 0, max = 1) | 生成10个0到1之间的均匀分布随机数 |
泊松分布 | rpois(10, lambda = 5) | 生成10个参数为5的泊松分布随机数 |
二项分布 | rbinom(10, size = 10, prob = 0.5) | 生成10个n为10,p为0.5的二项分布随机数 |
(三)字符串处理
操作 | 命令示例 | 说明 |
---|---|---|
连接字符串 | `string1 <- “Hello” string2 <- “World” new |