本文主要是介绍R语言基础语法速成与学习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
作者:CSDN-PleaSure乐事
欢迎大家阅读我的博客 希望大家喜欢
目录
1.介绍
2.语法
2.1赋值
2.2算数运输
2.3取子集
2.4数据类型
2.4.1标量
2.4.2向量
2.4.2矩阵
2.4.3数组
2.4.4列表
2.4.5因子
2.4.6时间与日期
2.4.7空值NULL和数据缺失NA
2.4.8无限大INF和NAN
2.5数据框
2.5.1数据框的创建
2.5.2访问
2.5.3修改
2.5.4添加
2.5.5删除
2.5.6筛选与排序
2.5.7合并
2.5.8聚合和汇总
1.介绍
R语言是一种广泛使用的统计编程语言,尤其适合数据分析、统计计算和图形绘制。
2.语法
2.1赋值
在R中,赋值操作可以使用 <-
或者 =
来完成。尽管 =
更加直观,但是 <-
在R的历史中更为传统,也被广泛使用。
x <- 5 # 使用 <- 赋值
x = 5 # 使用 = 赋值
2.2算数运输
R支持基本的算术运算,包括加法 +、减法 -、乘法 *、除法 / 和取模(求余数)%%。
a <- 10
b <- 3
print(a + b) # 加法
print(a - b) # 减法
print(a * b) # 乘法
print(a / b) # 除法
print(a %% b) # 求余
2.3取子集
R提供了多种方法来提取或访问向量、矩阵或数据框中的元素。索引通常使用方括号 [ 和 ]。
vec <- c(1, 2, 3, 4, 5) # 创建一个向量
print(vec[2]) # 访问第二个元素
print(vec[c(1, 3)]) # 访问第一个和第三个元素
print(vec[-2]) # 访问除了第二个元素之外的所有元素# 对于数据框
df <- data.frame(name = c("Alice", "Bob", "Charlie"),age = c(25, 30, 35),stringsAsFactors = FALSE
)
print(df$name) # 访问name列
print(df[1, ]) # 访问第一行
print(df[, "age"]) # 访问age列
2.4数据类型
R中有几种基本的数据类型,包括标量、向量、矩阵、数组、列表、因子等。
- 标量:标量是最基本的数据类型,如数字
5
。 - 向量:向量是一维的数组,可以存储相同类型的元素。
- 矩阵:矩阵是二维数组。
- 数组:数组可以有多个维度。
- 列表:列表是存储不同类型的元素的有序集合。
- 因子:因子是用来表示分类变量的数据类型。
2.4.1标量
标量是最简单的数据类型,表示单个值。R中的标量实际上是一个长度为1的向量,它可以是数值型、字符型、逻辑型(布尔型)或复数型。
数值型 (numeric):表示实数,例如 1, 3.14。
整型 (integer):表示整数,例如 1L,这里的 L 表示这是一个整数。
字符型 (character):表示文本字符串,例如 "Hello", "World"。
逻辑型 (logical):表示布尔值,只有两个可能的值:TRUE 和 FALSE。
复数型 (complex):表示复数,例如 1 + 2i。
2.4.2向量
向量是一维数组,可以存储相同类型的元素。向量可以通过 c() 函数创建:
vector <- c(1, 2, 3, 4, 5) # 数值型向量
char_vector <- c("apple", "banana", "cherry") # 字符型向量
bool_vector <- c(TRUE, FALSE, TRUE) # 逻辑型向量
2.4.2矩阵
matrix_data <- matrix(1:6, nrow = 2, ncol = 3)
print(matrix_data)
2.4.3数组
数组是多维的向量,可以有任意数量的维度,并且所有元素必须是同一类型。
array_data <- array(1:12, dim = c(2, 3, 2))
print(array_data)
2.4.4列表
列表是存储不同类型的对象的有序集合。列表可以通过 list()
函数创建:
list_data <- list(name = "Alice", age = 30, hobbies = c("reading", "coding"))
print(list_data)
2.4.5因子
因子是一种特殊类型的向量,用于分类数据。因子可以被标记为有序或无序,并且可以节省内存。
factor_data <- factor(c("low", "medium", "high", "low"))
print(factor_data)
2.4.6时间与日期
R支持多种日期和时间数据类型,如日期 (Date
) 和 POSIXct 或 POSIXlt 类型的时间戳。
date_data <- as.Date("2024-01-01")
time_data <- Sys.time()
print(date_data)
print(time_data)
2.4.7空值NULL和数据缺失NA
NULL是一种特殊的值,表示一个不存在的对象或缺失的值。
null_value <- NULL
print(null_value)
NA表示“不可用”或缺失的数据,可以在任何数据类型中出现。
na_value <- NA
print(na_value)
2.4.8无限大INF和NAN
Inf 表示正无穷大,-Inf 表示负无穷大。
inf_value <- Inf
print(inf_value)
NaN 表示“不是一个数”,通常出现在数学运算错误的情况下。
nan_value <- 0/0
print(nan_value)
2.5数据框
数据框是R中最常用的数据结构之一,它类似于数据库表,由行和列组成。每一列代表一个变量,每一行代表一个观测值。
2.5.1数据框的创建
数据框可以通过data.frame函数来创建,该函数接收一系列向量作为参数,这些向量的长度应该相同,代表数据框中的列。每个向量可以有不同的数据类型。
# 创建一个数据框
df <- data.frame(name = c("Alice", "Bob", "Charlie"),age = c(25, 30, 35),gender = factor(c("Female", "Male", "Male")), # 因子类型height = c(165, 175, 180), # 数值类型stringsAsFactors = FALSE # 避免将字符串自动转换为因子
)# 显示数据框
print(df)
2.5.2访问
可以使用多种方式来访问数据框中的元素:
- 按列名访问:df$column_name 或 df[[column_name]]
- 按位置访问:df[, column_index] 或 df[[column_index]]
- 同时访问行和列:df[row_index, column_index]
# 按列名访问
print(df$name) # 访问name列# 按位置访问
print(df[, 2]) # 访问第二列# 同时访问行和列
print(df[1, 2]) # 访问第一行第二列
2.5.3修改
可以使用相同的方式修改数据框中的元素:
# 修改name列为大写
df$name <- toupper(df$name)# 修改特定元素
df$age[2] <- 31 # 将第二行的年龄改为31
2.5.4添加
可以向数据框中添加新的列或行
# 添加列
df$occupation <- c("Engineer", "Doctor", "Artist") # 添加职业列# 添加行
new_row <- data.frame(name = "David",age = 28,gender = "Male",height = 178,stringsAsFactors = FALSE
)
df <- rbind(df, new_row) # 在数据框底部添加一行
2.5.5删除
可以使用负索引来删除数据框中的列或行:
# 删除列
df <- df[, -3] # 删除第三列# 删除行
df <- df[-4, ] # 删除第四行
2.5.6筛选与排序
可以使用逻辑条件来筛选数据框中的行:
# 筛选年龄大于30的人
selected_rows <- df[df$age > 30, ]# 排序
sorted_df <- df[order(df$age), ] # 按年龄升序排列
sorted_df_desc <- df[order(df$age, decreasing = TRUE), ] # 按年龄降序排列
2.5.7合并
可以使用merge函数来合并两个数据框,也可以使用rbind或cbind来垂直或水平堆叠数据框。
# 垂直堆叠
df1 <- data.frame(name = "Eve", age = 22, stringsAsFactors = FALSE)
df <- rbind(df, df1)# 水平堆叠
df2 <- data.frame(hobby = c("Coding", "Reading", "Painting", "Gaming"), stringsAsFactors = FALSE)
df <- cbind(df, df2)
2.5.8聚合和汇总
可以使用aggregate函数或tapply函数来进行数据框的聚合和汇总。
# 按性别汇总平均年龄
agg_result <- aggregate(age ~ gender, data = df, FUN = mean)
print(agg_result)
作者:CSDN-PleaSure乐事
希望我的博客对您有帮助,也希望在对您有帮助时您可以为我留下点赞收藏与关注,这对我真的很重要,谢谢!
这篇关于R语言基础语法速成与学习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!