特殊符号常用,但不好搜索,收藏起来做个备用,欢迎大家继续补充。
()
: 通常用于函数的调用,例如ggplot(data)
; 或者调整优先级,如1:3+1
返回2 3 4
,而1:(3+1)
返回1 2 3 4
。[]
: 用于索引向量、列表、数据框。[[]]
: 用于索引获得列表、数据框的具体值。$
: 用于数据框索引某一列。三者的区别,具体见下面例子演示。
aVector <- 1:3+1
aVector[1]
## [1] 2
aList <- list(a=aVector, b=1:(3+1))
aList
## $a
## [1] 2 3 4
##
## $b
## [1] 1 2 3 4
# 获取列表某个元素
aList['a']
## $a
## [1] 2 3 4
# 获取列表某个元素的值
aList[['b']]
## [1] 1 2 3 4
aDF <- data.frame(a=1:3,b=2:4)
# 列的名字直接写在$后面
aDF$a
## [1] 1 2 3
# 列的名字为变量时使用
aDF[['a']]
## [1] 1 2 3
# 数据框单列会变为向量
aDF[,1]
## [1] 1 2 3
# drop=F数据框单列也保持数据框结构
aDF[,1,drop=F]
## a
## 1 1
## 2 2
## 3 3
{}
: 一般用于界定语句块;如函数定义,if
语句和for
语句的作用范围等。::
和:::
: 通常是如dplyr::filter
(包名字::函数名
)的方式显示制定调用某个包的某个函数。别人运行的好好的R代码,到我这怎么就冲突了?%in%
: 判断存在与否,见下面例子
1 %in% c(1,2,3)
## [1] TRUE
10 %in% c(1,2,3)
## [1] FALSE
...
: 通常用于定义函数时接收额外的参数,传给内部调用的其它函数。=
: 单个等号,一般是赋值和传参==
: 判断是否相等!=
: 判断是否不等!
: 逻辑非|
,||
: 逻辑或 (单竖线和双竖线意义不同)&
,&&
: 逻辑与 (这里的&
就不是放在后台运行了~~)
1==1
## [1] TRUE
# 取反
!1==1
## [1] FALSE
1!=1
## [1] FALSE
# 逻辑与
(1==1) & (1==2)
## [1] FALSE
# 逻辑或
(1==1) | (1==2)
## [1] TRUE
# 对每对元素计算逻辑或
c(F, T) | c(F, F)
## [1] FALSE TRUE
# 只对两侧向量第一个元素进行逻辑或
c(F, T) || c(F, T)
## [1] FALSE
# 只对两侧向量第一个元素进行逻辑或
c(F, T) || c(T, F)
## [1] TRUE
# 对每对元素计算逻辑与
c(F, T) & c(F, F)
## [1] FALSE FALSE
# 只对两侧向量第一个元素进行逻辑与
c(F, T) && c(F, T)
## [1] FALSE
# 只对两侧向量第一个元素进行逻辑与
c(F, T) && c(T, F)
## [1] FALSE
~
: 用于构建公式;y~x1+x2
。`
: 反引号` `
在R中用于不规则变量名。`
?
|: 可以查看
|`函数的帮助,这也是不规则变量名的一个体现。
# aDF = data.frame(Log2 Fold change=1:3)
# Error: unexpected symbol in "aDF = data.frame(Log2 Fold"
aDF = data.frame(`Log2 Fold change`=1:3)
aDF
## Log2.Fold.change
## 1 1
## 2 2
## 3 3
aDF = data.frame(`Log2 Fold change`=1:3, check.names=F)
aDF
## Log2 Fold change
## 1 1
## 2 2
## 3 3
aDF$`Log2 Fold change`
## [1] 1 2 3
!!
: 通常配合sym
用于需要传入变量的函数中。具体见下面例子。
xvariable_en = sym(xvariable)
yvariable_en = sym(yvariable)
p <- ggplot(data, aes(!!xvariable_en, !!yvariable_en))
%>%
: 管道符,上一个函数的输出传递给下一个函数作为输入。来源于magrittr
包,同类型的还有%T>%
,%$%
和%<>%
,具体查阅相应帮助文档。
相关阅读:
猜你喜欢
10000+:菌群分析 宝宝与猫狗 梅毒狂想曲 提DNA发Nature Cell专刊 肠道指挥大脑
文献阅读 热心肠 SemanticScholar Geenmedical
16S功能预测 PICRUSt FAPROTAX Bugbase Tax4Fun
生物科普: 肠道细菌 人体上的生命 生命大跃进 细胞暗战 人体奥秘
写在后面
为鼓励读者交流、快速解决科研困难,我们建立了“宏基因组”专业讨论群,目前己有国内外5000+ 一线科研人员加入。参与讨论,获得专业解答,欢迎分享此文至朋友圈,并扫码加主编好友带你入群,务必备注“姓名-单位-研究方向-职称/年级”。PI请明示身份,另有海内外微生物相关PI群供大佬合作交流。技术问题寻求帮助,首先阅读《如何优雅的提问》学习解决问题思路,仍未解决群内讨论,问题不私聊,帮助同行。
学习16S扩增子、宏基因组科研思路和分析实战,关注“宏基因组”
点击阅读原文,跳转最新文章目录阅读