百日筑基篇——R的数据结构与数据类型(R语言初识一)
百日筑基篇 ———— R的数据结构与数据类型(R语言初识一)
文章目录
前言
作为一个生物专业的学生,对计算机编程语言有较多兴趣,在生信分析中,R语言的学习是必不可少的,作为一个萌新,希望以这种方式,对自己的学习不断进行复盘,同时希望多多指教!!
一、R是什么?
R是一种编程语言和环境,特别适用于统计数据分析、数据可视化和机器学习等领域。
R语言优点:
1.开源代码
2.R软件免费
3.有大量的扩展包
4.绘图精美、高效
二、R的常见数据结构
1.向量(Vectors)
向量是一种基本的数据结构,可存储一系列的值。可以是数值型(numeric)、字符型(character)、逻辑型(logical)或因子型(factor)等
y <- c(1:10)
N <- y[c(TRUE,FALSE)]
y[y>5&y<8] #交集
y[y>5 | y<8] #并集
y>5#返回逻辑判断
y[c(T,F)] %>% class()#数值向量
length(N)
z <- c("one","two","three","four")
class(z) #字符向量
"one"%in% z #判断字符“one”是否在z中
z%in% c("one","four")#同上,返回逻辑判断
v <- 1:3
v[c(4,5,6)] <- 5:7
append(v,78,after=5)#在向量中插入新元素,after=, 后接索引
ceiling(c(-2.3,3.1412))#不小于x的最小整数
floor(c(-2.3,3.1412)) #不大于x的最大整数
trunc(c(-2.3,3.1412))#返回整数部分
round(c(-2.3,3.1412),digits = 2)#进行四舍五入
signif(c(-2.3,3.1412),digits = 3)#保留小数部分有效数字
which.max(c(1,4,3,6,7,43,6))
which(c(1,4,3,6,7,43,6)==6)#返回索引值
2.矩阵(Matrix)
矩阵是一个二维的数据结构,由行和列组成。矩阵可以存储相同类型的数据,如数值型、字符型等。
x <- 1:20
m <- matrix(x,nrow = 4,ncol=5)
dim(m)
dimnames(m) <- list(c("r1","r2","r3","r4"),c("e1","e2","e3","e4","e5")) #dimnames函数可通过一个列表,指定矩阵行和列的名称
dim(y) <- c(5,2,1) #可通过改变维数来构建矩阵、数组等
q <- c(1:9)
dim(q) <- c(3,3)
w <- c(2:10)
dim(w) <- c(3,3)
q*w #矩阵的内积(对应元素相乘)
q%*%w #矩阵的乘法(行列相乘)
3.数组(Array)
数组是一个多维的数据结构,可以存储多维的数据。数组可以是数值型、字符型等。矩阵就是一个二维数组。
4.数据框(Data Frame)
数据框是一种类似于表格的数据结构,它由行和列组成。其每列可以是不同的数据类型,可以存储不同的数据结构,如向量、因子等,数据框就是一种特殊的列表。
5.列表(List)
列表是一种可以包含不同类型数据对象的数据结构,可以包含向量、矩阵、数据框等其他对象。
a <- c(1:20)
b <- matrix(1:20,4,5)
c <- mtcars
d <- "I'm wang hao tian"
wlist <- list(first=a,second=b,three=c,four=d) #形成一个列表
wlist[1] %>% class()
class(wlist[[1]][5])
wlist$first[4] %>% class()
wlist[[5]] <- c(1:3)
wlist[5]
wlist <- wlist[-5]#删除
6.因子(Factor)
因子是用来表示分类变量的数据结构,它可以将离散的值映射为有序或无序的标签。
mtcars$cyl %>% class()
table(mtcars$cyl)
f <- factor(mtcars$cyl) #转化为因子
week <- factor(c("Mon","Fri","Thu","Wed","Mon","Fri"
,"Sun"),ordered = TRUE,levels=c("Mon","The","Wed","Thu","Fri"
,"Sat","Sun"))
x <- 1:100
cut(x,c(seq(0,100,10))) #cut函数可将连续型变量x分割成连续水平的因子
三、R的常见数据类型
数据结构与数据类型有所区别:
数据类型是指数据的类型和属性,而数据结构是指数据的组织和存储方式; 其中既是数据类型又是数据结构的是:向量、列表、矩阵、数组、数据框、因子
1.数值型(numeric)
用于存储数字的数据类型,包括整数和浮点数
as.integer(34.3) #转化为整数
as.numeric("34.34") #转化为浮点数
2.字符型(character)
用于存储文本字符串的数据类型
nchar("hello world")
nchar(month.name) #nchar返回每个元素字符串的个数
length(month.name)
class(month.name)
paste("i","love","you",sep="O^O")
paste(month.name,"QoQ") #paste函数用于粘贴字符串
substr(month.name,start=1,stop=3) #提取字符串,返回起始点与结束点之间的字符串
substr(month.name,start=1,stop=3) %>% toupper() %>% tolower()
s <- c("aa","a@","rr")
grep("a@",s,fixed = T) #grep函数用于查找字符串,返回索引
path <- "&user&local&bin&R"
strsplit(path,"&") %>% class() #将字符串按指定的分隔符进行拆分
3.逻辑型(logical)
用于存储逻辑值(TRUE或FALSE)的数据类型
4.时间型(POSIXct、POSIXlt)
用于存储日期和时间的数据类型。
Sys.Date() %>% class() #查看当前日期
a <- "2023-01-05"
t <- as.Date(a,format = "%Y-%m-%d") #转化为时间型
class(t)
seq(as.Date("2023-02-04"),as.Date("2023-05-05"),by=5) #创建连续的时间点
sales <- presidents[35:60]
ts(sales,start=c(2010,6),end=c(2014,4),frequency = 12)#ts函数将向量转化为时间序列数据
总结
今天,整理了R语言中的数据结构和数据类型,理清了其中的关联与区别。大体来说,数据结构提供了一种方式来在程序中组织和操纵数据,而数据类型则定义了数据在内存中的存储和表示方式。即后者为基础元素,前者为存储框架。
昔我往矣,杨柳依依;今我来思,雨雪霏霏
–2023-7-2 筑基篇
更多推荐


所有评论(0)