Li's Bioinfo-Blog
  • |
  • 主页
  • 分类
  • 标签
  • 归档
  • 关于
  • 搜索
Home » Tags

R

conda环境下载管理软件、R包

conda开源包管理系统和环境管理系统 ,包括多种语言的包安装,运行,更新,删除,最重要的是可以解决包依赖问题。在做生信分析时,感觉就是一个软件管家一样的存在,在安装生信软件等方面上十分方便。下面小结一下conda的基础操作 ...

Create:&nbsp;<span title='2022-04-16 00:00:00 +0000 UTC'>2022-04-16</span>&nbsp;|&nbsp;Update:&nbsp;2022-04-16&nbsp;|&nbsp;Words:&nbsp;2136&nbsp;|&nbsp;5 min&nbsp;|&nbsp;Lishensuo

R基础配置

1、R镜像设置 (1)临时设置,重启R之后会重置 1 2 3 4 options(BioC_mirror="http://mirrors.tuna.tsinghua.edu.cn/bioconductor/") options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")) options()$repos options()$BioC_mirror (2)通过设置.Rprofile文件永久设置 linux 1 2 3 4 5 6 7 #进入家目录 cd ~ vi ~/.Rprofile #输入下面两行代码 options(repos=structure(c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))) options(BioC_mirror="https://mirrors.tuna.tsinghua.edu.cn/bioconductor") #保存退出 window 第①步:打开记事本或者其他文本编辑软件; 第②步:输入默认设置(内容同上述linux案例); 第③步:保存文件到 “此电脑>文档” /.Rprofile; 第④步:重新进入R/RStudio即可。 ...

Create:&nbsp;<span title='2022-04-16 00:00:00 +0000 UTC'>2022-04-16</span>&nbsp;|&nbsp;Update:&nbsp;2022-04-16&nbsp;|&nbsp;Words:&nbsp;244&nbsp;|&nbsp;1 min&nbsp;|&nbsp;Lishensuo

R语言的多线程循环语句

在遇到R里的大量循环操作时,可以考虑多线程处理方式,提高分析速度。具体使用方法针对window与linux/mac平台有所区别。相关笔记如下 1 2 #查看系统平台 Windows/Linux Sys.info()['sysname'] 一、Linux/Mac平台 1 2 3 library(parallel) # 检测系统的CPU数 detectCores() 1、lapply 多线程 mclapply()函数,关键是mc.cores参数设置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 library(parallel) ##并行4个线程 res = mclapply(1:10, function(x){ <code> <code> }, mc.cores = 4) ##并行处理不影响顺序 res = mclapply(1:1000, function(x){ print(x) x2 = x*x Sys.sleep(0.1) return(c(x, x2)) }, mc.cores = 10) res_df = do.call(rbind, res) head(res_df,3) # [,1] [,2] # [1,] 1 1 # [2,] 2 4 # [3,] 3 9 tail(res_df,3) # [,1] [,2] # [998,] 998 996004 # [999,] 999 998001 # [1000,] 1000 1000000 2、for循环 多线程 配合foreach包。可通过调整参数,设置结果返回的形式,详见相关笔记,或者该包的帮助文档。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 library(foreach) library(doParallel) cl=makeCluster(4) registerDoParallel(cl) #专门加载所需要的分析包 clusterEvalQ(cl, library(package1)) clusterEvalQ(cl, library(package1)) res = foreach(i = 1:10) %dopar% { <code> <code> } stopCluster(cl) 二、window平台 个人觉得window平台的笔记本电脑可能还是不太适合多线程的使用 1 2 3 library(parallel) # 检测系统的CPU数 detectCores() 1、lapply 多线程 parLapply()函数 1 2 3 4 5 6 7 8 cl <- makeCluster(4) #专门加载所需要的分析包 clusterExport(cl, library(packages)) res=parLapply(cl, 1:10, function(x){ <code> <code> }) stopCluster(cl) #需要显式的释放已加载的线程,比较麻烦 2、for循环的多线程调用同上 参考教程 https://www.biostars.org/p/273107/

Create:&nbsp;<span title='2022-05-17 00:00:00 +0000 UTC'>2022-05-17</span>&nbsp;|&nbsp;Update:&nbsp;2022-05-17&nbsp;|&nbsp;Words:&nbsp;508&nbsp;|&nbsp;2 min&nbsp;|&nbsp;Lishensuo

R-数据分析-dplyr表格操作

1 2 3 4 5 6 7 8 9 library(tidyverse) # -- Attaching packages ----------------------------------------------------- tidyverse 1.3.1 -- # √ ggplot2 3.3.5 √ purrr 0.3.4 # √ tibble 3.1.2 √ dplyr 1.0.7 # √ tidyr 1.1.3 √ stringr 1.4.0 # √ readr 2.0.0 √ forcats 0.5.1 # -- Conflicts -------------------------------------------------------- tidyverse_conflicts() -- # x dplyr::filter() masks stats::filter() # x dplyr::lag() masks stats::lag() 1、表格筛选 1.1 select 筛选列 col1:col3 选取起止范围的列; ...

Create:&nbsp;<span title='2022-05-08 00:00:00 +0000 UTC'>2022-05-08</span>&nbsp;|&nbsp;Update:&nbsp;2022-05-08&nbsp;|&nbsp;Words:&nbsp;2320&nbsp;|&nbsp;5 min&nbsp;|&nbsp;Lishensuo

R-数据分析-reshape2表格长短转换

1 2 library(tidyverse) library(reshape2) 1、matrix 1 2 3 4 5 6 7 8 9 10 11 12 set.seed(123) scores_mt = matrix(round(rnorm(40, mean = 80, sd=10)), nrow = 10, ncol = 4, dimnames = list(paste0("Stu",1:10), paste0("Subject-",LETTERS[1:4]))) class(scores_mt) # [1] "matrix" "array" head(scores_mt) # Subject-A Subject-B Subject-C Subject-D # Stu1 74 92 69 84 # Stu2 78 84 78 77 # Stu3 96 84 70 89 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ##(1) 宽变长 reshaped = melt(scores, value.name = "Score") head(reshaped) # Var1 Var2 Score # 1 Stu1 Subject-A 74 # 2 Stu2 Subject-A 78 # 3 Stu3 Subject-A 96 ## Var1 --- rownames ## Var2 --- colnames ##(2) 长变宽(还原) reshaped %>% dcast(Var1 ~ Var2) %>% head() # Var1 Subject-A Subject-B Subject-C Subject-D # 1 Stu1 74 92 69 84 # 2 Stu2 78 84 78 77 # 3 Stu3 96 84 70 89 2、data.frame 2.1 简单 1 2 3 4 5 6 7 8 9 10 scores_df = scores_mt %>% as.data.frame() %>% tibble::rownames_to_column("Name") class(scores_df) # [1] "data.frame" head(scores_df) # Name Subject-A Subject-B Subject-C Subject-D # 1 Stu1 74 92 69 84 # 2 Stu2 78 84 78 77 # 3 Stu3 96 84 70 89 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ##(1) 宽变长 reshaped = scores_df %>% melt(id="Name", variable.name="Subject", value.name = "Score") head(reshaped) # Name Subject Score # 1 Stu1 Subject-A 74 # 2 Stu2 Subject-A 78 # 3 Stu3 Subject-A 96 ##(2) 长变宽(还原) reshaped %>% dcast(Name ~ Subject, value.var = "Score") %>% head() # Name Subject-A Subject-B Subject-C Subject-D # 1 Stu1 74 92 69 84 # 2 Stu10 76 75 93 76 # 3 Stu2 78 84 78 77 2.2 复杂 1 2 3 4 5 6 7 8 scores_df_Anno = scores_df %>% dplyr::mutate(Class=paste0("Class",rep(c("01","02"), 5)), Age=round(rnorm(10, 20, 1)), .before=2) head(scores_df_Anno) # Name Class Age Subject-A Subject-B Subject-C Subject-D # 1 Stu1 Class01 20 74 92 69 84 # 2 Stu2 Class02 20 78 84 78 77 # 3 Stu3 Class01 20 96 84 70 89 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ##(1) 宽变长 reshaped = scores_df_Anno %>% melt(id=c("Name","Class","Age"), variable.name="Subject", value.name = "Score") head(reshaped) # Name Class Age Subject Score # 1 Stu1 Class01 20 Subject-A 74 # 2 Stu2 Class02 20 Subject-A 78 # 3 Stu3 Class01 20 Subject-A 96 ##(2) 长变宽(还原) reshaped %>% dcast(Name + Class + Age ~ Subject, value.var = "Score") %>% head() # Name Class Age Subject-A Subject-B Subject-C Subject-D # 1 Stu1 Class01 20 74 92 69 84 # 2 Stu10 Class02 21 76 75 93 76 # 3 Stu2 Class02 20 78 84 78 77 3、list 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 scores_list = list(Stu1=c(1,2), Stu2=c(3,4), Stu3=c(5,6)) # $Stu1 # [1] 1 2 # # $Stu2 # [1] 3 4 # # $Stu3 # [1] 5 6 melt(scores_list) # value L1 # 1 1 Stu1 # 2 2 Stu1 # 3 3 Stu2 # 4 4 Stu2 # 5 5 Stu3 # 6 6 Stu3

Create:&nbsp;<span title='2022-06-25 00:00:00 +0000 UTC'>2022-06-25</span>&nbsp;|&nbsp;Update:&nbsp;2022-06-25&nbsp;|&nbsp;Words:&nbsp;580&nbsp;|&nbsp;2 min&nbsp;|&nbsp;Lishensuo

R语言RSelenium爬虫.md

1、html基础与xpath语法 1.1 html基础 大多数网页内容都是html结构组织的,在我理解就是有众多节点(node)组成的树状结构; 而我们想要爬取的内容就是其中的某个或者某些节点的文本标签或者属性中。 更多可参考: (1)https://www.w3cschool.cn/html/html-basic.html (2)HTML零基础入门教程(详细)_ZONGXP的博客-CSDN博客_html5零基础入门教程 ...

Create:&nbsp;<span title='2022-05-10 00:00:00 +0000 UTC'>2022-05-10</span>&nbsp;|&nbsp;Update:&nbsp;2022-05-10&nbsp;|&nbsp;Words:&nbsp;4006&nbsp;|&nbsp;8 min&nbsp;|&nbsp;Lishensuo

基于Rstudio创建R包

总结一下目前学习的,基于Rstudio的创建R包流程。 Part1:创建R包基本流程 step1:建立开发环境 目的是创建一个文件夹,用于储存编写R包的各种文档;在创建之前想 好R包的名字,以及文件夹的路径。 这里示例R包名为newPackage。 进入Rstudio界面,依次点击File → New project → New Directory → R package,会出现如下界面,填写好R包名字,选择好开发包的工作目录(其它暂时都不用考虑);最后点击Creat Project即可。 如上操作后,会进入新的工作环境,即R包开发环境;同时已经创建好R包开发所需的所必须的模板文档。主要包括4个部分: (1)R 文件夹:用于存放R函数脚本的文件夹;里面有一个示例文件hello.R (2)man 文件夹:用于存放对应上述R函数的说明文档Rd文件的文件夹;里面有一个示例文件hello.Rd。 (3)DESCRIPTION:关于R包的说明文档。 (4)NAMESPACE:声明R包导出以供外部使用的函数以及R包从其他包导入的外部函数。 ...

Create:&nbsp;<span title='2023-01-22 00:00:00 +0000 UTC'>2023-01-22</span>&nbsp;|&nbsp;Update:&nbsp;2023-01-22&nbsp;|&nbsp;Words:&nbsp;2828&nbsp;|&nbsp;6 min&nbsp;|&nbsp;Lishensuo

R包purrr的函数编程

purrr包是tidyverse系列中用于函数编程的工具,很多用法类似R base的apply系列函数。现参考相关资料,学习其基本用法。 https://jennybc.github.io/purrr-tutorial/index.html https://shixiangwang.github.io/home/cn/post/purrr-loop/ ...

Create:&nbsp;<span title='2023-07-09 00:00:00 +0000 UTC'>2023-07-09</span>&nbsp;|&nbsp;Update:&nbsp;2023-07-09&nbsp;|&nbsp;Words:&nbsp;1580&nbsp;|&nbsp;4 min&nbsp;|&nbsp;Lishensuo

renv包环境可重复性

https://rstudio.github.io/renv 记录一个R项目所需的R包来源及其相应的版本号,方便对于其他用户的可重复性分析。 1. 初始化项目 在当前目录下创建一个文件夹,是包含一个R project对象的工作环境; 其中library文件夹是该工作环境安装R包的路径,renv.lock是记录R包及其版本后的重要文件。 1 2 3 renv::init("foo_project") #初始化后会自动切换到该环境下,如果没有可以手动切换 # setwd("foo_project") ...

Create:&nbsp;<span title='2024-04-06 00:00:00 +0000 UTC'>2024-04-06</span>&nbsp;|&nbsp;Update:&nbsp;2024-04-06&nbsp;|&nbsp;Words:&nbsp;526&nbsp;|&nbsp;2 min&nbsp;|&nbsp;Lishensuo

Shell_Python_R脚本基础

1、shell脚本 1.1 脚本执行 (1)命令行直接执行 如下示例:脚本第一行设置脚本解释器的路径,如写错或没写,系统会调用默认解释器执行。然后在运行脚本时,需要先赋予可执行权限。(下同) ...

Create:&nbsp;<span title='2023-03-25 00:00:00 +0000 UTC'>2023-03-25</span>&nbsp;|&nbsp;Update:&nbsp;2023-03-25&nbsp;|&nbsp;Words:&nbsp;734&nbsp;|&nbsp;2 min&nbsp;|&nbsp;Lishensuo
© 2025 Li's Bioinfo-Blog Powered by Hugo & PaperMod
您是本站第 位访问者,总浏览量为 次