R语言实验课(生信)(附代码)

实验五

题目1:

解决方法:

a<-read.table("E:/R/Rcode/temp.txt")#读取txt文件,找到下载路径
b<-list();c<-list();d<-list();e<-list();h<-matrix(0,5,1)#声明变量
for (i in 1:5) {
  b[[i]]<-a[i,which(nchar(a[i,])>=5)]
}
b#对于每一行,取出字符数大于等于5的元素;nchar
for (i in 1:5) {
  c[[i]]<-paste(b[[i]],collapse ="")
}
c#将每一行提取的元素拼接起来(中间不分隔)变成一个字符(每一行变成一个字符);paste
for (i in 1:5) {
  d[[i]]<-substr(c[[i]],3,9)
}
d#然后,对于拼接后的5个字符,取出各自第3-9个字母;substr
for (i in 1:5) {
  g<-strsplit(d[[i]],"f")#根据字母“f”将字符拆分;strsplit
  e[[i]]<-g[[1]][1]
  h[i]<-e[[i]][1]
}
h#将拆分后的每一行的第一个元素放在一起变成向量的形式
x<-paste(h,sep = " ",collapse = "_")
x#将拆分后的第一个元素以“_”为分隔拼接起来;paste

 结果:

 

题目二:

 解决办法:

f<-function(b){
  start<-Sys.time()#计算初始时间
  b[which(lower.tri(b)==TRUE)]=t(b)[which(lower.tri(b)==TRUE)]
  #利用lower.tri函数将b矩阵变成对称矩阵
  end<-Sys.time()#计算终止时间
  runningtime<-end-start#计算运行时间
  list(b,runningtime)#返回矩阵和与运行时间
}
a<-sample(1:100,100)#在1—100之间随机生成100个数,不放回抽样
b<-matrix(a,10,10)#以向量a生成一个10*10的随机矩阵
f(b)#调用自定义函数f,参数是矩阵b

 结果展示:

第一次:

 第二次:

 题目三:

 解决办法:

rotate <- function(x) {
  t(apply(x, 2, rev))
}#将输入的x矩阵进行逆时针旋转90°
g<-function(b){
  c<-rotate(b)#旋转之后的新矩阵赋给c
  start<-Sys.time()
  c[which(lower.tri(c)==TRUE)]=t(c)[which(lower.tri(c)==TRUE)]
  #利用lower.tri函数将c矩阵变成对称矩阵
  end<-Sys.time()
  runningtime<-end-start
  list(rotate(c),runningtime)#返回c的旋转矩阵和与运行时间
}
a<-sample(1:100,100)
b<-matrix(a,10,10)
g(b)

 结果展示:

第一次:

第二次:

  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值