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
相关推荐
坤坤子吖3 小时前
Python基础语法学习:函数
开发语言·笔记·python·学习
言乐63 小时前
Python体现逻辑回归和决策树的区别
开发语言·python·算法·决策树·逻辑回归
LOVE️YOU3 小时前
Python 类与对象的核心逻辑:从 self、cls 到点号、括号与链式调用
开发语言·python
顶点多余3 小时前
C/C++常见面试题
开发语言·c++
(Charon)3 小时前
【C++面试】右值引用与移动语义:std::move到底做了什么
开发语言·c++
TheITSea3 小时前
JavaScript Web APIs
开发语言·前端·javascript
空心木偶☜3 小时前
A2A2A(多智能体协作)
开发语言·python·ai·ai编程
Cc.Y3 小时前
Java零基础入门:类与对象深度掌握 —— 从“零散变量“到“打包管理“
java·开发语言·python
\光辉岁月/3 小时前
2.java变量
java·开发语言·变量
夏天的清晨3 小时前
C++入门学习
开发语言·c++·学习