赞
踩
在R语言中,数据结构是处理和分析数据的基础。本文将详细介绍R语言中常见的数据结构,包括基础数据结构和进阶数据结构,以及它们相关的函数和示例代码。
向量是R中最基本的数据结构,可以包含逻辑型、整型、双精度型和字符型数据。
c()
: 合并多个元素创建向量rep()
: 重复元素创建向量seq()
: 创建等差数列vec1 <- c(1, 2, 3, 4)
vec2 <- rep(1:3, times = 2)
vec3 <- seq(1, 10, by = 2)
矩阵是二维的同质数据结构。
matrix()
: 创建矩阵mat <- matrix(1:9, nrow = 3, ncol = 3)
数组是多维的同质数据结构。
array()
: 创建数组arr <- array(1:8, dim = c(2, 2, 2))
数据框是二维的异质数据结构。
data.frame()
: 创建数据框df <- data.frame(name = c("Alice", "Bob"), age = c(25, 30))
列表是可以包含不同类型元素的结构。
list()
: 创建列表lst <- list(name = "Alice", age = 25, scores = c(90, 85, 88))
typeof()
: 判断对象的基础类型mode()
: 判断对象的存储模式class()
: 判断对象的类str()
: 显示对象的内部结构typeof(vec1)
mode(mat)
class(df)
str(lst)
length()
: 获取向量、列表等的一维长度dim()
: 获取矩阵、数组等的维度ncol()
: 获取列数nrow()
: 获取行数length(vec1)
dim(mat)
ncol(df)
nrow(df)
is.*()
is.infinite()
: 判断是否为无穷大is.nan()
: 判断是否为NaNis.logical()
: 判断是否为逻辑型is.infinite(Inf)
is.nan(NaN)
is.logical(TRUE)
as.*()
as.logical()
: 转换为逻辑型as.integer()
: 转换为整型as.double()
: 转换为双精度型as.logical(1)
as.integer(2.5)
as.double("3.14")
mean(x < 0)
,计算向量x中小于0的数的比例。mean(c(1, -1, 3) < 0)
c(1, 2) + c(1, 2, 3, 4)
c(1, 2, 3) + c(1, 2, 3, 4)
[1] 2 4 4 6
Warning in c(1, 2, 3) + c(1, 2, 3, 4) :
longer object length is not a multiple of shorter object length
[1] 2 4 6 5
[]
: 基本索引[[]]
: 提取列表元素$
: 提取数据框或列表的命名元素which()
: 返回条件为真的元素索引subset()
: 基于条件提取子集vec1[1:2]
lst[["name"]]
df$age
which(vec1 > 2)
subset(df, age > 25)
names()
: 获取或设置名称rownames()
: 获取或设置行名colnames()
: 获取或设置列名names(vec1) <- c("A", "B", "C", "D")
rownames(mat) <- c("row1", "row2", "row3")
colnames(df) <- c("Name", "Age")
Tibble是数据框的增强版本,提供更好的打印和子集操作。
as_tibble()
: 转换为tibbletibble()
: 创建tibbletribble()
: 创建列式输入的tibblelibrary(tibble)
tb <- tibble(name = c("Alice", "Bob"), age = c(25, 30))
tb2 <- tribble(
~name, ~age,
"Alice", 25,
"Bob", 30
)
因子用于表示分类数据,尤其是定型数据。
base::factor()
, base::levels()
, forcats::fct()
fct_reorder()
, fct_relevel()
fct_reorder2()
, fct_infreq()
, fct_rev()
fct_recode()
, fct_collapse()
fct_lump()
library(forcats)
f <- factor(c("low", "medium", "high"))
f2 <- fct_relevel(f, "high", "medium", "low")
f3 <- fct_lump(f, n = 2)
字符串处理可以使用stringr包提供的丰富函数。
library(stringr)
str <- "Hello, World!"
str_length(str)
str_to_upper(str)
日期时间处理可以使用lubridate包。
# 示例代码
library(lubridate)
d <- ymd("2024-06-09")
d + days(1)
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。