特殊符号常用,但不好搜索,收藏起来做个备用,欢迎大家继续补充。
()
: 通常用于函数的调用,例如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>%
,%$%
和%<>%
,具体查阅相应帮助文档。
相关阅读:
这21个不太好搜索其含义的特殊符号你都知道吗?