前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >生信技能树笔记day3

生信技能树笔记day3

原创
作者头像
天空UP
修改于 2023-01-16 09:01:14
修改于 2023-01-16 09:01:14
9080
举报

title: "生信技能树学习笔记"

引用自生信技能树 author: "天空"

date: "2023-01-02"

output: html_document


一、数据框、矩阵和列表

1. 数据框来源

(1)代码新建数据框

代码新建.jpg
代码新建.jpg
代码语言:text
AI代码解释
复制
#新建和读取数据框
df1 <- data.frame(gene   = paste0("gene",1:4),
                 change  = rep(c("up","down"),each = 2),
                 score   = c(5,3,-2,-4))
df1
代码语言:txt
AI代码解释
复制
##    gene change score
## 1 gene1     up     5
## 2 gene2     up     3
## 3 gene3   down    -2
## 4 gene4   down    -4

(2)文件中读取

文件读取数据.jpg
文件读取数据.jpg
代码语言:text
AI代码解释
复制
df2 <- read.csv("day3/R_02/gene.csv")
df2
代码语言:txt
AI代码解释
复制
##    gene change score
## 1 gene1     up     5
## 2 gene2     up     3
## 3 gene3   down    -2
## 4 gene4   down    -4

2. 数据框属性

数据框属性.jpg
数据框属性.jpg
代码语言:text
AI代码解释
复制
#数据框属性
dim(df1)
代码语言:txt
AI代码解释
复制
## [1] 4 3
代码语言:text
AI代码解释
复制
nrow(df1)
代码语言:txt
AI代码解释
复制
## [1] 4
代码语言:text
AI代码解释
复制
ncol(df1)
代码语言:txt
AI代码解释
复制
## [1] 3
代码语言:text
AI代码解释
复制
rownames(df1)
代码语言:txt
AI代码解释
复制
## [1] "1" "2" "3" "4"
代码语言:text
AI代码解释
复制
colnames(df1)
代码语言:txt
AI代码解释
复制
## [1] "gene"   "change" "score"

3. 数据框取子集

数据框取子集.jpg
数据框取子集.jpg
代码语言:text
AI代码解释
复制
#数据框取子集
df1$gene  #删掉score,按tab键试试
代码语言:txt
AI代码解释
复制
## [1] "gene1" "gene2" "gene3" "gene4"
代码语言:text
AI代码解释
复制
mean(df1$score)
代码语言:txt
AI代码解释
复制
## [1] 0.5
代码语言:text
AI代码解释
复制
# 按坐标
df1[2,2]
代码语言:txt
AI代码解释
复制
## [1] "up"
代码语言:text
AI代码解释
复制
df1[2,]
代码语言:txt
AI代码解释
复制
##    gene change score
## 2 gene2     up     3
代码语言:text
AI代码解释
复制
df1[,2]
代码语言:txt
AI代码解释
复制
## [1] "up"   "up"   "down" "down"
代码语言:text
AI代码解释
复制
df1[c(1,3),1:2]
代码语言:txt
AI代码解释
复制
##    gene change
## 1 gene1     up
## 3 gene3   down
代码语言:text
AI代码解释
复制
# 按名字
df1[,"gene"]
代码语言:txt
AI代码解释
复制
## [1] "gene1" "gene2" "gene3" "gene4"
代码语言:text
AI代码解释
复制
typeof(df1[,"gene"])
代码语言:txt
AI代码解释
复制
## [1] "character"
代码语言:text
AI代码解释
复制
df1["gene"]
代码语言:txt
AI代码解释
复制
##    gene
## 1 gene1
## 2 gene2
## 3 gene3
## 4 gene4
代码语言:text
AI代码解释
复制
typeof(df1["gene"])
代码语言:txt
AI代码解释
复制
## [1] "list"
代码语言:text
AI代码解释
复制
df1[,c('gene','change')]
代码语言:txt
AI代码解释
复制
##    gene change
## 1 gene1     up
## 2 gene2     up
## 3 gene3   down
## 4 gene4   down
代码语言:text
AI代码解释
复制
# 按条件(逻辑值)
df1[df1$score>0,]
代码语言:txt
AI代码解释
复制
##    gene change score
## 1 gene1     up     5
## 2 gene2     up     3
代码语言:text
AI代码解释
复制
# 中括号里面的逗号表示维度分割!!!
# 数据框按照逻辑值取子集,TRUE对应的行/列留下,FALSE对应的行/列丢掉

4. 代码思维

代码思维1.jpg
代码思维1.jpg
代码语言:text
AI代码解释
复制
# 代码思维
#如何取数据框的最后一列?
df1[,3]
代码语言:txt
AI代码解释
复制
## [1]  5  3 -2 -4
代码语言:text
AI代码解释
复制
df1[,ncol(df1)]
代码语言:txt
AI代码解释
复制
## [1]  5  3 -2 -4
代码语言:text
AI代码解释
复制
#如何取数据框除了最后一列以外的其他列?
df1[,-ncol(df1)]
代码语言:txt
AI代码解释
复制
##    gene change
## 1 gene1     up
## 2 gene2     up
## 3 gene3   down
## 4 gene4   down

5. 数据框修改行/列名

修改行列名.jpg
修改行列名.jpg
代码语言:text
AI代码解释
复制
#改行名和列名
rownames(df1) <- c("r1","r2","r3","r4")
#只修改某一行/列的名
colnames(df1)[2] <- "CHANGE"

6. 两个数据框的连接

数据框连接.jpg
数据框连接.jpg
代码语言:text
AI代码解释
复制
#两个数据框的连接
test1 <- data.frame(name = c('jimmy','nicker','Damon','Sophie'), 
                    blood_type = c("A","B","O","AB"))
test1
代码语言:txt
AI代码解释
复制
##     name blood_type
## 1  jimmy          A
## 2 nicker          B
## 3  Damon          O
## 4 Sophie         AB
代码语言:text
AI代码解释
复制
test2 <- data.frame(name = c('Damon','jimmy','nicker','tony'),
                    group = c("group1","group1","group2","group2"),
                    vision = c(4.2,4.3,4.9,4.5))
test2
代码语言:txt
AI代码解释
复制
##     name  group vision
## 1  Damon group1    4.2
## 2  jimmy group1    4.3
## 3 nicker group2    4.9
## 4   tony group2    4.5
代码语言:text
AI代码解释
复制
test3 <- data.frame(NAME = c('Damon','jimmy','nicker','tony'),
                    weight = c(140,145,110,138))
test3
代码语言:txt
AI代码解释
复制
##     NAME weight
## 1  Damon    140
## 2  jimmy    145
## 3 nicker    110
## 4   tony    138
代码语言:text
AI代码解释
复制
merge(test1,test2,by="name")
代码语言:txt
AI代码解释
复制
##     name blood_type  group vision
## 1  Damon          O group1    4.2
## 2  jimmy          A group1    4.3
## 3 nicker          B group2    4.9
代码语言:text
AI代码解释
复制
merge(test1,test3,by.x = "name",by.y = "NAME")
代码语言:txt
AI代码解释
复制
##     name blood_type weight
## 1  Damon          O    140
## 2  jimmy          A    145
## 3 nicker          B    110

7.记忆卡片

记忆卡片3.jpg
记忆卡片3.jpg

8. 矩阵新建和取子集

矩阵新建.jpg
矩阵新建.jpg
代码语言:text
AI代码解释
复制
m <- matrix(1:9, nrow = 3)
colnames(m) <- c("a","b","c") #加列名
m
代码语言:txt
AI代码解释
复制
##      a b c
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
代码语言:text
AI代码解释
复制
m[2,]
代码语言:txt
AI代码解释
复制
## a b c 
## 2 5 8
代码语言:text
AI代码解释
复制
m[,1]
代码语言:txt
AI代码解释
复制
## [1] 1 2 3
代码语言:text
AI代码解释
复制
m[2,3]
代码语言:txt
AI代码解释
复制
## c 
## 8
代码语言:text
AI代码解释
复制
m[2:3,1:2]
代码语言:txt
AI代码解释
复制
##      a b
## [1,] 2 5
## [2,] 3 6
代码语言:text
AI代码解释
复制
m
代码语言:txt
AI代码解释
复制
##      a b c
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9

9. 矩阵的转置和转换

转置和转换.jpg
转置和转换.jpg
代码语言:text
AI代码解释
复制
t(m)
代码语言:txt
AI代码解释
复制
##   [,1] [,2] [,3]
## a    1    2    3
## b    4    5    6
## c    7    8    9
代码语言:text
AI代码解释
复制
class(m)
代码语言:txt
AI代码解释
复制
## [1] "matrix" "array"
代码语言:text
AI代码解释
复制
m1 <- as.data.frame(m)
m1
代码语言:txt
AI代码解释
复制
##   a b c
## 1 1 4 7
## 2 2 5 8
## 3 3 6 9
代码语言:text
AI代码解释
复制
class(m1)
代码语言:txt
AI代码解释
复制
## [1] "data.frame"

10. 关于R语言的修改

R修.jpg
R修.jpg

11. 列表的新建与取子集

列表新建.jpg
列表新建.jpg
代码语言:text
AI代码解释
复制
#列表
l <- list(m1 = matrix(1:9, nrow = 3),
          m2 = matrix(2:9, nrow = 2))
l
代码语言:txt
AI代码解释
复制
## $m1
##      [,1] [,2] [,3]
## [1,]    1    4    7
## [2,]    2    5    8
## [3,]    3    6    9
## 
## $m2
##      [,1] [,2] [,3] [,4]
## [1,]    2    4    6    8
## [2,]    3    5    7    9
代码语言:text
AI代码解释
复制
l[[2]]
代码语言:txt
AI代码解释
复制
##      [,1] [,2] [,3] [,4]
## [1,]    2    4    6    8
## [2,]    3    5    7    9
代码语言:text
AI代码解释
复制
l$m1
代码语言:txt
AI代码解释
复制
##      [,1] [,2] [,3]
## [1,]    1    4    7
## [2,]    2    5    8
## [3,]    3    6    9
代码语言:text
AI代码解释
复制
# 补充:元素的名字

scores = c(100,59,73,95,45)
names(scores) = c("jimmy","nicker","Damon","Sophie","tony")
scores
代码语言:txt
AI代码解释
复制
##  jimmy nicker  Damon Sophie   tony 
##    100     59     73     95     45
代码语言:text
AI代码解释
复制
scores["jimmy"]
代码语言:txt
AI代码解释
复制
## jimmy 
##   100
代码语言:text
AI代码解释
复制
scores[c("jimmy","nicker")]
代码语言:txt
AI代码解释
复制
##  jimmy nicker 
##    100     59
代码语言:text
AI代码解释
复制
names(scores)[scores>60]
代码语言:txt
AI代码解释
复制
## [1] "jimmy"  "Damon"  "Sophie"

12. 删除变量

删除变量.jpg
删除变量.jpg

13. 数据结构总结

数据结构总结.jpg
数据结构总结.jpg

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
2-R语言数据结构
---title: "2-R语言数据结构"output: html_documentdate: "2023-02-02"---矩阵:只允许一种数据类型的二维结构数据框:每一列只允许一种数据类型列表:可以装各种数据类型#重点:数据框#1.数据框来源# (1)用代码新建# (2)由已有数据转换或处理得到# (3)读取表格文件# (4)R语言内置数据#2.新建和读取数据框df1 <- data.frame(gene = paste0("gene",1:4), change =
yurric
2023/02/02
4820
R语言学习笔记-Day3
用户11190095
2024/07/04
1890
阿榜的生信笔记
---title: "生信R"author: "JB"date: "2023-04-14"output: html_document---R Markdown#重点:数据框#1.数据框来源# (1)用代码新建: #df1 <- data.frame(gene = paste0("gene",1:4), #change = rep(c("up","down"),each = 2), #score = c(5
用户10480134
2023/04/15
3900
R语言基础-向量、矩阵、数据框、列表相关操作
生信汪一昂
2023/09/16
4100
R_数据类型和数据结构2
Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.
欣欣丫
2023/11/23
2200
技能树Day02_直播课02-04_数据结构、R包、数据读取
sheldor没耳朵
2024/07/18
1960
技能树Day02_直播课02-04_数据结构、R包、数据读取
生信技能树DAY 3 R语言入门
用户11064093
2024/04/12
3140
R3数据结构和文件读取
When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
用户10556374
2023/05/15
2.9K0
Learn R 数据结构
数据类结构 数据类型 一维 vector 向量 数值、字符、逻辑都可;只有长度;只允许一种数据 二维 matrix 矩阵 向量二维化 只允许一种数据类型 二维 data.frame 数据框-二维,每列只允许一种数据类型 1.数据框来源 1)用代码新建 2)由已有数据转换或处理得到 3)读取表格文件 4)R语言内置数据 2.新建和读取数据框 df1 <- data.frame(gene = paste0("gene",1:4),change = rep(c("up","down"),each = 2),
用户10412487
2023/03/28
5680
数据框取子集、修改和连接的方法
title: "数据框取子集、修改和连接的方法" output: html_document date: "2023-03-18" 先生成一个数据框df1作为示例数据框 df1 <- data.frame(gene = paste0("gene",1:4), change = rep(c("up","down"),each = 2), score = c(5,3,-2,-4)) df1 ## gene change scor
小叮当aka
2023/03/18
1.8K0
R学习-3-数据结构
Vector向量----一维 matrix矩阵----二维,只允许一种数据类型 data.frame数据框----二维,每列只允许一种数据类型 list列表----可装万物 图片 数据框来源: 图片 内置数据框 x=iris volcano View(volcano) ##表格视图 > class(volcano) ##数据框中包括哪些数据类型 [1] "matrix" "array" heatmap(volcano) ##热图 > letters [1] "a" "b" "c" "d" "e" "f
用户10420779
2023/03/20
4800
Python & R 数据框操作详细对比
DataFrame不是原生的,而是由pandas提供,接受字典,每列是一个键值对的格式。
用户11414625
2024/12/23
1490
Python & R 数据框操作详细对比
【生信技能树培训笔记】R语言基础(20230112更新)
方式:RStudio中,菜单栏File→NewProject→NewDirectory→NewProject→DirectoryName
HenryLei
2023/01/05
4.2K0
数据框、矩阵和列表20230202
2、read.csv(" ") ⚠️文件在当前的工作路径中可以直接使用文件名,否则需要使用绝对路径,否则就会报错。
顾卿岚
2023/02/03
1.4K0
R语言基础2
Erics blog
2023/09/11
2740
Jely's Note之生信入门class3
df1 <- data.frame(gene=paste0("gene",1:4),
用户10556369
2023/05/17
6870
Jely's Note之生信入门class3
Day3 学习 简单作图 数据框 列表 矩阵
Qianhui Cheng
2025/02/09
790
跟小洁老师学习R语言的第三天
each和times的区别是times输出的是abcdabcdabcd,each输出的是aaabbbcccddd
贝诺酯
2023/03/12
5250
生信课程note-3
matrix 矩阵-二维,只允许一种数据类型;data.frame数据框-二维,每列只允许一种数据类型。
素素
2023/02/09
1.4K0
阿榜的生信笔记3
哈喽,我是学习生物信息学的阿榜!非常感谢您能够点击进来查看我的笔记。我致力于通过笔记,将生物信息学知识分享给更多的人。如果有任何纰漏或谬误,欢迎指正。让我们一起加油,一起学习进步鸭? 这份思维导图可以
用户10480134
2023/04/29
9490
相关推荐
2-R语言数据结构
更多 >
LV.0
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档