前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Day 5_R数据结构-CG

Day 5_R数据结构-CG

原创
作者头像
Crazy_George
修改2024-03-29 13:25:07
1360
修改2024-03-29 13:25:07
举报
文章被收录于专栏:一周生信入门
R语言数据结构
R语言数据结构

数据类型

  • 向量(Vector)
  • 矩阵(Matrix)
  • 数组(Array)
  • 数据框(Data frame)
  • 列表(List)

1. 向量Vector

首先了解元素的含义。元素是数字或字符串等,可以将元素细分为标量和向量。

标量和向量

标量:1个元素组成的变量

向量:多个元素组成的变量

给变量定义 就是赋值。

代码语言:R
复制
> x <- c(1,2,3)#将x定义为由元素1,2,3组成的向量。
> x
[1] 1 2 3
> x <- c(1:10)#将x定义为1到10所有整数组成的向量
> x
 [1]  1  2  3  4  5  6  7  8  9 10
> x <- seq(1,10,by = 0.5)#将x定义为从1开始,每隔0.5取数,到10为止所组成的向量
> 
> x
 [1]  1.0  1.5  2.0  2.5  3.0  3.5  4.0  4.5  5.0  5.5  6.0  6.5  7.0  7.5  8.0  8.5  9.0
[18]  9.5 10.0
> x <- rep(1:3,times = 2)#将x定义为数字1-3,重复2次组成的向量
> x
[1] 1 2 3 1 2 3

上述代码不断给x赋值,每次新的赋值都会覆盖旧赋值。

2. 从向量中提取元素

2.1 根据元素位置

代码语言:r
复制
> x <- c(1:10)#将x定义为1到10所有整数组成的向量
> x
 [1]  1  2  3  4  5  6  7  8  9 10
> x[5]#提取向量x中的第5个元素
[1] 5
> x[-6]#提取向量x中除第六个元素以外其他元素
[1]  1  2  3  4  5  7  8  9 10
> x[2:4]#提取向量x的第二到第4个元素
[1] 2 3 4
> x[-(7:9)]#提取向量x中除7到9外元素
[1]  1  2  3  4  5  6 10
> x[c(2,8,4)]#提取向量x中第2、第8、第4个元素。
[1] 2 8 4

2.2 根据值

代码语言:r
复制
> x[x==10]#等于10的元素
[1] 10
> x[x<4]#向量x中的小于4的元素
[1] 1 2 3
> x[x %in% c(1,8,11,23)]#向量x中存在于c(1,8,11,23)的元素。
[1] 1 8

3. 数据框

3.1 MacOS新建txt文件:在工作目录下新建haha.txt文件。控制台 > 文本编辑 > 格式 > 改为纯文本,编辑后保存即为txt文本。

将"huahua.txt"文件保存到工作目录(Rproject管理项目的工作目录)

3.2 读取本地文档x<- read.csv('haha.txt')

help("read.table")代码在R中查看“read.table”的帮助文档。可查看函数各种参数用法。用好帮助文档,更好使用相关函数。

3.3 查看行名和列名、行数和列数

代码语言:r
复制
> colnames(x)#查看列名
[1] "X1" "X2"
> rawname(x)#函数名打错返回结果
Error in rawname(x) : could not find function "rawname"
> rowname(x)#函数名打错返回结果
Error in rowname(x) : could not find function "rowname"
> rownames(x)#正确查看行名函数
[1] "1" "2" "3" "4" "5"
> View(x)
> dim(x)#查看数据框几行几列
[1] 5 2

函数名确保正确,合理使用键盘tab键

3.4 数据框导出

write.table(x,file = 'xxx.txt',sep=",",quote =F )

运行结果展示为:

代码语言:r
复制
> x#首先展示变量x
  X1 X2
1  A  1
2  B NA
3  C NA
4  D  3
5  E NA
> write.table(x,file = 'yyy.txt',sep=",",quote =F )#将变量x导出为文件名“yyy.txt”,参数使用查看help(write.table)
> a <- read.table(file = 'xxx.txt', sep = ',',header = T)#重新读取“yyy.txt”,并将其赋值给a
> a#读取变量a
  X1 X2
1  A  1
2  B NA
3  C NA
4  D  3
5  E NA
> 

注意导出文件和读取文件时参数的使用

3.5 变量的保存和重新加载

代码语言:r
复制
> save.image(file="bioinfoplanet_day4.RData")#保存当前所有变量
> save(a,file="day4_test.RData")#选择保存当前的1个变量
> load("day4_test.RData")#再次使用RData中的变量时重新加载命令
变量保存
变量保存

3.6 提取元素

提取元素练习过程和代码如下:

代码语言:R
复制
> a#变量a展示
  X1 X2
1  A  1
2  B NA
3  C NA
4  D  3
5  E NA
> a[3,1]#提取变量a第三行第一列
[1] "C"
> a[4,]#提取元素第四行
  X1 X2
4  D  3
> a[,1]#提取元素第1列
[1] "A" "B" "C" "D" "E"
> a[1]#也是提取变量第1列
  X1
1  A
2  B
3  C
4  D
5  E
> a[1:2]#提取变量a的第1到第2列
  X1 X2
1  A  1
2  B NA
3  C NA
4  D  3
5  E NA
> a[c(1,2)]#提取一个向量包含的列
  X1 X2
1  A  1
2  B NA
3  C NA
4  D  3
5  E NA
> colnames(a)#显示变量a的列名
[1] "X1" "X2"
> a[X1]#新手错误,多练习,多敲打键盘
Error: object 'X1' not found
> a$X1#提取列名为X1的列
[1] "A" "B" "C" "D" "E"

4. 额外练习

4.1 使用R中内置数据iris,提取某两列作散点图。

代码语言:r
复制
> colnames(iris)#查看iris数据框的列名
[1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"     
> plot(iris$Sepal.Widt,iris$Petal.Width)#以Sepal.Widt(向量)列为横坐标,以Petal.Width(向量)为纵坐标作散点图。
散点图做图练习
散点图做图练习

4.2 保存脚本

脚本、RData文件按照Rproject根据不同生信项目保存。养成好习惯!!

5. 作业

save(a,file="test.RData")这句代码如果报错object a not found,是为什么,应该怎么解决?

练习中出现了相似问题,如下图:

解决方法:

确认是否保存变量名称是否在当前环境存在;我认为这种情况大多出现在变量名拼写错误,更正正确变量名即可。

内容参考微信公众号 生信星球自己实践总结。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据类型
  • 1. 向量Vector
    • 标量和向量
    • 2. 从向量中提取元素
      • 2.1 根据元素位置
        • 2.2 根据值
        • 3. 数据框
          • 3.1 MacOS新建txt文件:在工作目录下新建haha.txt文件。控制台 > 文本编辑 > 格式 > 改为纯文本,编辑后保存即为txt文本。
            • 3.2 读取本地文档x<- read.csv('haha.txt')
              • 3.3 查看行名和列名、行数和列数
                • 3.4 数据框导出
                  • 3.5 变量的保存和重新加载
                    • 3.6 提取元素
                      • 4.1 使用R中内置数据iris,提取某两列作散点图。
                      • 4.2 保存脚本
                  • 4. 额外练习
                  • 5. 作业
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档