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乐事

希望我的博客对您有帮助,也希望在对您有帮助时您可以为我留下点赞收藏与关注,这对我真的很重要,谢谢!

  • 25
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值