R语言小白入坑练习1.0

2021.9.16
题目:
已有信息ensembl_id,找到对应的基因名(symbol)
思路:
通过ensembl_id确定gene_id,再通过gene_id确定symbol。
技术点:
1)用separate去掉版本号使数据A与ensembl_id一样。
2)使用merge()函数去合并数据框。
答案:

A<-read.table("C:/Users/Alice/Documents/Practice/A-gene.txt",header=F)
library(tidyr)
A2<-separate(A,V1,into="ensembl_id",sep="[.]")
library(org.Hs.eg.db)
g2s=toTable(org.Hs.egSYMBOL)
g2e=toTable(org.Hs.egENSEMBL)
C<-merge(g2e,A2,by="ensembl_id")
D<-merge(g2s,C,by="gene_id")
D
ListD.png

2021.9.17
题目1:
怎么把a="A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q"变成
b="A1B2C3D4E5F6G7H8I9J10K11L12M13N14015P16Q17"
提示:
可以用strsplit、paste0这两个函数
答案:

 x1<-c(as.character(1:17))
 a<-c("A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q")
 x2<-unlist(strsplit(as.character(a),split = "-"))
 b<-paste(x2,x1,sep="")
 b
#[1] "A1"  "B2"  "C3"  "D4"  "E5"  "F6"  "G7"  "H8"  "I9"  "J10" "K11"
[12] "L12" "M13" "N14" "O15" "P16" "Q17"

题目2:
上题不用unlist怎么操作?
目的:
理解R里的列表。
思路:
用[[1]](在list中取值)替代unlist的作用,“[[1]]”是list取值的固定表达方法。
答案:

x1<-c(as.character(1:17))
a<-c("A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q")
x2<-strsplit(as.character(a),split = "-")
x3<-x2[[1]]
b<-paste(x3,x1,sep="")
b
#[1] "A1"  "B2"  "C3"  "D4"  "E5"  "F6"  "G7"  "H8"  "I9"  "J10" "K11"
[12] "L12" "M13" "N14" "O15" "P16" "Q17"

拓展:
试运行以下代码,练习在list里取值

d<-lapply(1:4,function(x){x*x+2})
d1<-d[[2]]
d1
#[1] 6

2021.9.18
题目:
熟悉下循环,学apply、lapply,然后学for循环,并用for循环编程求1+2+3+…+100的值。
思路:
R语言for循环的结构体:
for ( 迭代因子 in 迭代区间 ) {
循环体
}


循环示意图.png

答案:

# for循环1到100的连加
he<-0             # 对结果赋初值
for(i in 1:100){
  he<-he+i        # 将每次的值累加
}
he
#[1] 5050

拓展:

# for循环1到10的平方之和
## 初始化数值
fac<-1
ans<-0
## 循环求值
for (i in 1:10) {
  fac<-i*i           # 平方计算
  ans<-ans + fac     # 累加求和
}
ans
#[1] 385
# for循环1到10的阶乘之和
## 初始化数值
fac<-1
ans<-0
## 循环求值
for (i in 1:10) {
  fac<-fac*i         # 阶乘计算
  ans<-ans + fac     # 累加求和
}
ans
#[1] 4037913
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容