R语言一些编程常用的地方
2021-01-20 本文已影响0人
单细胞空间交响乐
加载R包的时候使用suppressMessages运行的时候不显示提示信息
suppressMessages({ ####使用suppressMessages运行的时候不显示提示信息
library(base)
library(argparser, quietly=TRUE)
library(Seurat)
library(dplyr)
library(nichenetr)
library(tidyverse)
})
R语言创建多级目录
dir.create(argv$outdir, recursive=TRUE)###recursive=TRUE用于创建多级目录
柱形图调节柱子的顺序
x$variable = factor(x$variable, levels=c('RT_0','KP_12h','KP_24h'))
就可以按照levels的顺序进行绘制柱形图。
将图例的符号调大,设置成一列
guides(fill = guide_legend(override.aes = list(size=5),ncol = 1,byrow = TRUE))
取分位值
quantile(pbmc@meta.datanFeature_RNA,probs = 0.5) 二分位值
查找字符串
grep(pattern,string) 返回第一个匹配到的下标
grepl(pattern,string) 返回bool型
R环境中调用python
library(reticulate)
#指定python路径
use_python('/your path/',required = T)
repl_python()
##进入python命令,可以在R studio中交互使用python
import pandas as pd
# 回到R
exit
###调用python里面的变量
x <- python$zhao
R语言检查错误(类似于python的try except)
Matrix_cluster <- try(cbind(Matrix,Cluster$Cluster))
if ('try-error' %in% class(Matrix_cluster)){
stop('the length of cluster don\'t match the length of rownames(Matrix)!!!!')
R语言让字母大小写
toupper()和 tolower()函数的基本语法为:
toupper(x)
tolower(x)
R语言让首字母大写,其余小写
zhao = 'zhao yun fei'
paste0(toupper(substr(zhao, 1,1)),tolower(substr(zhao,2,str_count(zhao))))
###输出 Zhao yun fei
R语言查看字符串的个数
str_count('zhao yun fei')
###返回12
R语言字符替换
gsub("目标字符", "替换字符", 对象)
R语言的grep
grep(pattern, x, ignore.case = FALSE, perl = FALSE, value = FALSE, fixed = FALSE, useBytes = FALSE, invert = FALSE)
返回包函该pattern元素在x中的索引
eg:
x= c('zhao','yun','fei')
grep('z',x)
返回1
grep('f',x)
返回3
R语言的grepl
grepl(pattern, x, ignore.case = FALSE, perl = FALSE, fixed = FALSE, useBytes = FALSE)
返回逻辑向量,bool
eg:x= c('zhao','yun','fei')
grepl('f',x)
返回FALSE FALSE TRUE
R语言的join家族函数(inner_join, full_join, left_join, right_join)
直接上例子
x = data.frame(key = c(1,2,3,4),value = c('a','b','c','d'))
y = data.frame(key = c(1,2,3,8),value = c('a','b','c','dd'))
x %>% inner_join(y, by = "key")
返回:
key value.x value.y
1 a a
2 b b
3 c c
####这个时候取了数据的交集,且共有列key在第一行,接下来就是x。
full_join将显示全部的x,y的信息,独有的会用<NA>补齐:
x %>% full_join(y, by = "key")
key value.x value.y
1 a a
2 b b
3 c c
4 d <NA>
8 <NA> dd
left_join将显示全部x的信息,y没有的用<NA>补齐。
right_join将显示全部y的信息,x没有的用<NA>补齐。