拓冰建站拓冰建站
首页 / 资讯中心 / 正文

R 基础语法:从入门到实战的完整指南

1. R 语言简介R 是一种用于统计计算和数据分析的编程语言广泛应用于数据科学、统计分析、机器学习等领域。R 语言以其强大的数据处理能力、丰富的可视化功能和活跃的开源社区而著称。本文将从基础语法入手通过大量代码实例帮助读者快速掌握 R 的核心用法。2. 基本数据类型R 中最常用的基本数据类型包括数值型numeric、字符型character、逻辑型logical和因子型factor。下面通过代码示例逐一介绍。# 数值型 x - 3.14 print(x) print(class(x)) 字符型 name - Alice print(name) print(class(name)) 逻辑型 is_valid - TRUE print(is_valid) print(class(is_valid)) 因子型 gender - factor(c(男, 女, 男)) print(gender) print(class(gender))3. 变量与赋值R 支持多种赋值方式最常用的是左箭头-和等号。变量名区分大小写且不能以数字开头。# 使用左箭头赋值 a - 10 b - 20 使用等号赋值 c 30 变量名区分大小写 Age - 25 age - 30 print(Age) # 输出 25 print(age) # 输出 30 一次赋值多个变量 d - e - 100 print(d) print(e)4. 向量与矩阵向量是 R 中最基本的数据结构使用c()函数创建。矩阵是二维的向量使用matrix()函数创建。# 创建向量 v1 - c(1, 2, 3, 4, 5) print(v1) 创建字符向量 v2 - c(苹果, 香蕉, 橙子) print(v2) 向量运算 v3 - c(1, 2, 3) v4 - c(4, 5, 6) print(v3 v4) # 逐元素相加 print(v3 * 2) # 标量乘法 创建矩阵 m - matrix(1:9, nrow 3, ncol 3) print(m) 按行填充矩阵 m2 - matrix(1:9, nrow 3, byrow TRUE) print(m2) 矩阵运算 m3 - matrix(1:4, nrow 2) m4 - matrix(5:8, nrow 2) print(m3 m4) # 矩阵加法 print(m3 %*% t(m4)) # 矩阵乘法5. 数据框Data Frame数据框是 R 中最常用的数据结构类似于 Excel 表格或 SQL 数据表。它由多个向量组成每个向量可以是不同的数据类型。# 创建数据框 df - data.frame( 姓名 c(张三, 李四, 王五), 年龄 c(25, 30, 28), 城市 c(北京, 上海, 广州) ) print(df) 查看数据框结构 str(df) 访问列 print(df$姓名) print(df[[年龄]]) 访问行 print(df[1, ]) # 第一行 print(df[2, 3]) # 第二行第三列 添加新列 df$工资 - c(8000, 9500, 9000) print(df) 筛选数据 subset_df - df[df$年龄 26, ] print(subset_df)6. 条件语句R 中的条件语句使用if、else if和else关键字。条件表达式的结果必须是逻辑值 TRUE 或 FALSE。# 基本 if 语句 score - 85 if (score 60) { print(及格) } else { print(不及格) } 多条件判断 score - 92 if (score 90) { print(优秀) } else if (score 80) { print(良好) } else if (score 60) { print(及格) } else { print(不及格) } 逻辑运算符 age - 25 if (age 18 age 60) { print(成年且未退休) } ifelse 函数向量化条件判断 scores - c(55, 78, 90, 45, 88) results - ifelse(scores 60, 及格, 不及格) print(results)7. 循环语句R 支持for循环和while循环。在 R 中向量化操作通常比循环更高效但在某些场景下循环仍然必不可少。# for 循环 for (i in 1:5) { print(i) } 遍历向量 fruits - c(苹果, 香蕉, 橙子) for (fruit in fruits) { print(paste(我喜欢吃, fruit)) } while 循环 count - 1 while (count 5) { print(count) count - count 1 } 循环中的 break 和 next for (i in 1:10) { if (i 3) { next # 跳过当前迭代 } if (i 8) { break # 终止循环 } print(i) } 嵌套循环 for (i in 1:3) { for (j in 1:3) { print(paste(i , i, , j , j)) } }8. 函数定义R 中使用function()关键字定义函数。函数可以接受参数、返回结果并支持默认参数值。# 定义简单函数 add - function(a, b) { return(a b) } print(add(3, 5)) 带默认参数的函数 greet - function(name 世界) { return(paste(你好, name, , sep )) } print(greet()) print(greet(小明)) 多返回值使用列表 get_stats - function(x) { mean_val - mean(x) sd_val - sd(x) return(list(mean mean_val, sd sd_val)) } result - get_stats(c(1, 2, 3, 4, 5)) print(result$mean) print(result$sd) 匿名函数 squared - function(x) x^2 print(sapply(1:5, squared)) 函数作为参数传递 apply_func - function(x, func) { return(func(x)) } print(apply_func(10, function(n) n * 2))9. 常用数据结构操作R 提供了丰富的函数用于数据操作包括列表list、集合set和字符串处理等。# 列表操作 my_list - list( 名称 测试, 数值 c(1, 2, 3), 嵌套 list(a 1, b 2) ) print(my_list$名称) print(my_list$数值[2]) print(my_list$嵌套$a) 字符串处理 text - Hello, R Language print(nchar(text)) # 字符串长度 print(toupper(text)) # 转大写 print(tolower(text)) # 转小写 print(substr(text, 1, 5)) # 截取子串 print(strsplit(text, , )) # 分割字符串 字符串拼接 paste(R, 语言, sep -) paste0(R, 语言) 集合操作 set1 - c(1, 2, 3, 4) set2 - c(3, 4, 5, 6) print(union(set1, set2)) # 并集 print(intersect(set1, set2)) # 交集 print(setdiff(set1, set2)) # 差集10. 数据可视化基础R 的绘图功能非常强大基础绘图系统使用plot()、hist()、barplot()等函数即可快速生成图表。# 散点图 x - c(1, 2, 3, 4, 5) y - c(2, 4, 5, 4, 8) plot(x, y, main 散点图示例, xlab X 轴, ylab Y 轴) 直方图 data - rnorm(100, mean 50, sd 10) hist(data, main 直方图示例, xlab 数值, col lightblue) 柱状图 barplot(c(10, 20, 15, 25), names.arg c(A, B, C, D), main 柱状图示例, col lightgreen) 箱线图 boxplot(data, main 箱线图示例, ylab 数值) 使用 ggplot2 包需先安装 install.packages(ggplot2) library(ggplot2) df - data.frame( 类别 c(A, B, C, D), 数值 c(10, 20, 15, 25) ) ggplot(df, aes(x 类别, y 数值)) geom_bar(stat identity, fill steelblue) labs(title ggplot2 柱状图示例)11. 文件读写R 支持读写多种格式的文件包括 CSV、Excel、文本文件等。下面演示常见的文件操作。# 写入 CSV 文件 df - data.frame( 姓名 c(张三, 李四, 王五), 年龄 c(25, 30, 28), 城市 c(北京, 上海, 广州) ) write.csv(df, data.csv, row.names FALSE) 读取 CSV 文件 df_read - read.csv(data.csv) print(df_read) 写入文本文件 writeLines(c(第一行, 第二行, 第三行), output.txt) 读取文本文件 lines - readLines(output.txt) print(lines) 读取 Excel 文件需安装 readxl 包 install.packages(readxl) library(readxl) excel_data - read_excel(data.xlsx) 读取 JSON 文件需安装 jsonlite 包 install.packages(jsonlite) library(jsonlite) json_data - fromJSON(data.json)12. 实用技巧与最佳实践掌握以下实用技巧可以让你的 R 代码更加高效、规范。# 查看帮助文档 ?mean help(mean) 查看函数参数 args(mean) 查看工作目录 getwd() 设置工作目录 setwd(C:/Users/username/Documents) 查看已安装的包 installed.packages() 安装包 install.packages(dplyr) 加载包 library(dplyr) 管道操作符dplyr 包 df %% filter(年龄 26) %% select(姓名, 城市) %% arrange(姓名) 使用 apply 系列函数 mat - matrix(1:9, nrow 3) apply(mat, 1, sum) # 按行求和 apply(mat, 2, sum) # 按列求和 处理缺失值 data_with_na - c(1, 2, NA, 4, NA) print(is.na(data_with_na)) print(na.omit(data_with_na)) print(mean(data_with_na, na.rm TRUE))13. 总结本文系统介绍了 R 语言的基础语法包括数据类型、变量赋值、向量与矩阵、数据框、条件语句、循环、函数定义、数据操作、可视化和文件读写等内容。通过丰富的代码实例读者可以快速上手 R 语言。R 语言的学习需要理论与实践相结合建议读者在掌握基础语法后进一步学习dplyr、ggplot2、tidyr等常用包并结合真实数据集进行练习。R 社区拥有丰富的学习资源和开源项目持续学习和实践是掌握 R 语言的关键。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门