R语言作为一种功能强大的统计计算和图形绘制工具,其命令体系涵盖了从数据操作、统计分析到可视化展示的方方面面,以下将详细介绍R语言中常用的命令,帮助用户系统掌握其核心功能。

在数据读取方面,read.table()和read.csv()是最基础的命令,前者用于读取文本格式的数据文件,后者专门处理CSV格式,参数header可指定是否包含列名,sep用于分隔符设置,对于Excel文件,readxl包中的read_excel()函数提供了便捷的读取方式,需先安装并加载该包,数据库连接则可通过RODBC或DBI包实现,例如odbcConnect()建立连接后,使用sqlQuery()执行查询语句。
数据结构操作是R语言的核心,向量通过c()函数创建,如x <- c(1, 2, 3);矩阵由matrix()生成,matrix(1:6, nrow=2, ncol=3)可创建2行3列的矩阵,数据框是最常用的结构,可通过data.frame()函数将多个向量合并,如df <- data.frame(name=c("A","B"), age=c(25,30)),列表的创建使用list(),允许存储不同类型的数据,如lst <- list(num=1:3, char="hello", mat=matrix(1:4,2))。
数据筛选与转换中,subset()函数可提取满足条件的子集,如subset(df, age>25)。which()函数返回逻辑条件的索引位置,df[which(df$age>25),]可实现筛选。transform()用于新增列,如transform(df, age_group=ifelse(age<30,"young","old"))。merge()函数实现数据框合并,类似SQL的JOIN操作,merge(df1, df2, by="id")按”id”列合并。
统计分析函数覆盖了从描述统计到推断统计的广泛需求,描述统计中,summary()输出最小值、四分位数、均值、最大值等概要信息;mean()、median()、sd()分别计算均值、中位数和标准差;table()生成频数表,如table(df$gender),推断统计方面,t.test()执行t检验,cor.test()计算相关系数并检验显著性,lm()用于线性回归,如lm(y~x1+x2, data=df)拟合多元线性模型,anova()输出方差分析表。

概率分布函数以”r/p/q/d”为前缀,分别表示随机数生成、分布函数、分位数密度函数和概率密度函数,例如正态分布中,rnorm(10, mean=0, sd=1)生成10个标准正态分布随机数,pnorm(1.96)计算标准正态分布小于1.96的概率,qnorm(0.975)返回0.975分位数,dnorm(0)计算标准正态分布在0处的密度值。
可视化方面,基础绘图函数包括plot()绘制散点图,hist()绘制直方图,boxplot()绘制箱线图,barplot()绘制条形图。par()函数可设置图形参数,如par(mfrow=c(2,2))将绘图区域分为2×2的网格。ggplot2包提供了更强大的可视化功能,通过ggplot(data, aes(x,y)) + geom_point()构建图形,支持图层叠加和精细定制。
编程控制结构方面,ifelse()是向量化的条件函数,如ifelse(df$age>25, "adult", "minor")。for()循环用于重复执行,如for(i in 1:10){print(i)};while()循环在条件满足时持续执行,如while(x>0){x=x-1}。apply()家族函数是向量化操作的关键,apply()应用于矩阵或数组,lapply()返回列表,sapply()简化为向量,如sapply(df, mean)计算每列均值。
以下是常用R函数的快速参考表:

| 功能类别 | 函数名 | 主要用途示例 |
|---|---|---|
| 数据读取 | read.csv() | 读取CSV文件:read.csv(“data.csv”) |
| 数据结构 | data.frame() | 创建数据框:df <- data.frame(x=1:3) |
| 数据筛选 | subset() | 提子集:subset(df, x>5) |
| 统计描述 | summary() | 概要统计:summary(df) |
| t检验 | t.test() | 两样本t检验:t.test(y~x, data=df) |
| 线性回归 | lm() | 回归分析:lm(y~x1+x2, data=df) |
| 正态分布随机数 | rnorm() | 生成随机数:rnorm(10, mean=0, sd=1) |
| 散点图 | plot() | 绘制散点图:plot(df$x, df$y) |
| 条件判断 | ifelse() | 向量化条件:ifelse(df$x>0, “pos”, “neg”) |
| 循环 | for() | 循环结构:for(i in 1:5){print(i)} |
| 应用函数 | apply() | 矩阵行均值:apply(mat, 1, mean) |
相关问答FAQs:
Q1: 如何处理R语言中的缺失值?
A: R语言中缺失值通常用NA表示,可通过is.na()检测缺失值,如sum(is.na(df$x))统计x列缺失值数量,删除缺失值可用na.omit(),如df_clean <- na.omit(df);填充缺失值可通过mean(df$x, na.rm=TRUE)计算均值后赋值,如df$x[is.na(df$x)] <- mean(df$x, na.rm=TRUE)。
Q2: 如何提高R语言的运行效率?
A: 可采用以下方法:1) 使用向量化操作替代循环,如用1:10^6替代for(i in 1:10^6){};2) 避免在循环中动态扩展对象,预分配内存;3) 对大数据集使用data.table包替代data.frame,其语法更高效;4) 并行计算通过parallel包实现,如mclapply()替代lapply();5) 使用Rcpp包编写C++代码加速计算密集型任务。
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/408508.html<
