前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >生信星球——生信入门DAY6:学习R包

生信星球——生信入门DAY6:学习R包

原创
作者头像
用户10920326
发布2024-01-23 00:18:35
1320
发布2024-01-23 00:18:35

以dplyr为例

首先设置镜像

代码语言:R
复制
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")) 
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/") 

先安装,再装载

代码语言:R
复制
install.packages("dplyr")
library(dplyr)

(library() : library(package)将加载名为package的命名空间,并添加到包的搜索列表中。加载前对搜索列表进行检查并更新,如果package不存在则报错,如果之前已加载package,则不会重复加载。如没有参数package即library(),则列出lib.loc指定的库中的所有可用包。library(help=package)将返回package的基本信息。

require() : require(package)将加载名为package的命名空间,并添加到包的搜索列表中,与library(package)一致。加载前对搜索列表进行检查并更新,如果package不存在(不可用),则返回FALSE而不报错,如果存在则返回TRUE。

source() : source使R直接接受来自命名文件、URL或表达式的输入,比如source(“Functions.R”)。从该文件读取和分析输入,直到到达文件的结尾,然后在选定的环境中按顺序解析表达式。

简单来讲,library更像装载,require不会报错,source装载的方式则不太一样。

代码语言:R
复制
test <- iris[c(1:2,51:52,101:102),]

数据库赋值给test,iris数据集中的这些列来做一个新的数据库

代码语言:R
复制
mutate(test, new = Sepal.Length * Sepal.Width)#1
Sepal.Length Sepal.Width Petal.Length Petal.Width    Species   new
1            5.1         3.5          1.4         0.2     setosa 17.85
2            4.9         3.0          1.4         0.2     setosa 14.70
51           7.0         3.2          4.7         1.4 versicolor 22.40
52           6.4         3.2          4.5         1.5 versicolor 20.48
101          6.3         3.3          6.0         2.5  virginica 20.79
102          5.8         2.7          5.1         1.9  virginica 15.66

用两列数据生成新列,然后可以用select筛选列、filter筛选行

代码语言:R
复制
filter(test, Species == "setosa")

filter(test, Species == "setosa"&Sepal.Length > 5 )

filter(test, Species %in% c("setosa","versicolor"))

分别表示:筛选species是setosa的列、species且sepal length大于5的列、species是setosa、versicolor中的某一个的列

代码语言:R
复制
arrange(test, Sepal.Length)#默认从小到大排序
arrange(test, desc(Sepal.Length))#用desc从大到小

简单的排序

代码语言:R
复制
arrange(test, Sepal.Length)
arrange(test, desc(Sepal.Length))

desc即从大到小排列(默认是从小到大)

代码语言:R
复制
summarise(test, mean(Sepal.Length), sd(Sepal.Length))
summarise(group_by(test, Species),mean(Sepal.Length), sd(Sepal.Length))

summarise可以配合group使用,第二行代码即是先将数据按species分组,再计算均值和标准差

同时,对于这样一组简单的数据,用管道操作也可以达成相同的目的,但是更有趣

代码语言:R
复制
test %>% 
  group_by(Species) %>% 
  summarise(mean(Sepal.Length), sd(Sepal.Length))

跑出来会发现两个代码得出的数据是一样的,但是管道操作(%>%)在复杂的数据中起到更亮眼的作用

简单的统计命令

代码语言:R
复制
count(test,Species)

默认是列,意为统计此列的unique值

将两表相连

代码语言:R
复制
inner_join(a, b, by = "x") #ab两表以x列内容相同的数据取交集,合成
left_join(a, b, by = 'x') #左连,以a表的x轴为准,将b表的内容补齐至新表左侧
left_join(b, a, by = 'x') #右连
full_join( test1, test2, by = 'x') #全连(行➕列,不算重复)
semi_join(x = test1, y = test2, by = 'x') #半连接,与y表匹配的x表所有记录(即以y为条件的x)
anti_join(x = test2, y = test1, by = 'x') #反连接
bind_rows()#函数需要两个表格列数相同
bind_cols()#函数则需要两个数据框有相同的行数

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档