2022.4.5 笔记进度终于赶上了,于4.6.14:06写下的!!!

基础知识

数据框排序

这里用到sort()和order(),与取子集的知识;这里默认升序,若要讲叙, decreasing = T(两个都是)
arrange()也可以,tidyverse让代码更易读,不过这里的降序是desc()

  1. # order 可以给向量排序,也可以给数据框排序
  2. sort(test$Sepal.Length)
  3. test$Sepal.Length[order(test$Sepal.Length)]
  4. test[order(test$Sepal.Length),]
  5. test[order(test$Sepal.Length,decreasing = T),]
  6. # arrange,更加灵活的排序
  7. library(dplyr)
  8. arrange(test, Sepal.Length)
  9. arrange(test, desc(Sepal.Length))
  10. arrange(test, desc(Sepal.Width),Sepal.Length)

表达矩阵绘制箱型图

ggplot2()不识别行名,所以需要把行名转化为第一列:rownames_to_column()
转置的是矩阵,所以后面需要as.data.frame()
总的来说,这里需要宽变长,用到了pivot_longer()函数——新合并的列名,这一步还挺难的,得看例子才明白
image.png

连接 其实就是inner_join及其变体 以及merge()

这里指的注意的是,对于缺失值,存在全连接,半连接,反连接;以及位置的左右连接。

字符串函数

这部分昨天上课的时候,我的表现确实不好,但是没怎么理解到位啊
image.png
str_split()分出的是一个列表list,所以查看里面的元素是[[1]],双括号;以及这里的simplify = T

simplify If FALSE, the default, returns a list of character vectors. If TRUE returns a character matrix.

image.png

  1. ###3.按位置提取字符串
  2. str_sub(x,5,9)
  3. ###4.字符检测
  4. str_detect(x2,"h")
  5. #这里返回了等长的逻辑值向量,可以用来取子集
  6. ###5.字符串替换
  7. str_replace(x2,"o","A") #只会替换掉一个,下面是全部替换
  8. str_replace_all(x2,"o","A")
  9. ###6.字符删除
  10. str_remove(x," ") #同上
  11. str_remove_all(x," ")

条件语句与循环语句

  1. if(){ }

(1)只有if没有else,那么条件是FALSE时就什么都不做
if后面的括号里不支持向量;支持“T” or “F”
(2)有else :只有三个参数,第一个是生成逻辑值向量的代码,后面分别是T或F的返回值
参考如下(方便后面复制)

  1. #### (3)多个条件
  2. i = 0
  3. if (i>0){
  4. print('+')
  5. } else if (i==0) {
  6. print('0')
  7. } else if (i< 0){
  8. print('-')
  9. }
  10. ifelse(i>0,"+",ifelse(i<0,"-","0"))
  1. 循环语句

两种循环方式:image.pngimage.png
因为生成的列表;do.call()是批量操作的意思,cbind是对后面的result按列拼接;前面do.call进行批量操作了。
毕竟这里没有simplify = T 的参数了
(我觉得这个先看懂吧,离会用还是太远了)

知识补充

  1. 补充三个来自dplyr的函数

image.png(需要赋值!!)image.png(这个我还是挺经常见的)image.png管道符的应用

  1. 长脚本的管理方式image.pngimage.png

截图与代码来源于生信技能树全程班中R基础班课程PPT