在分析数据的时候,不管是数据表格中还是脚本中经常会出现一些奇奇怪怪的符号。这些符号中有些符号用法简单,而另一些符号功能特别强大。下面就以R语言为例,为大家整理一下常见符号的功能用法。
NaN
“Not a Number”的缩写,非数值,NaN参与运算时返回NaN。
a <- 0/0
a
#[1] NaN
a+1
#[1] NaN
NA
“Not available”的缩写,NA表示缺失值,NA参与运算时返回NA。
a <- c(1,2,3,6)
a
#[1] 1 2 3 6
b <- a[5]
b
#[1] NA
b+1
#[1] NA
length(b)
#[1] 1
NULL
表示不存在,empty,一般不参与运算。
c <- NULL
c
#NULL
c+1
#numeric(0)
length(c)
#[1] 0
INF
“Infinite”的缩写,表示无穷大,参与运算,需要注意的是R语言中零可以作为分母参与运算。
a <- 1/0
a
#[1] Inf
b <- -1*a
b
#[1] -Inf
1/a
#[1] 0
~
R语言公式(formula)中用于代替数学公式中的“=”,连接因变量和自变量,通常“~”左边是因变量,右边是自变量。
例如,y=ax+b 在R语言中表示为 y~ax+b。在基础绘图函数中,plot(x,y) 和plot(y~x)是等效的。
x<- cars $speed
y <- cars $dist
plot(x,y)
plot(y~x)
n
Windows使用“n” 回车换行(New line);Mac用“r” 回车换行(Carriage return),Linux用“rn”表示回车换行。
作图时可在坐标轴刻度文本标签中加入换行符,实现长刻度标签换行的效果。
t
“t” 表示制表符,可按Tab键生成,用于在文本文件中构建表格。
%%
%% 取模运算符,用于计算余数。
10/3
#[1] 3.333333
10%%3
#[1] 1
%/%
%/% 整除运算符,用于计算商。
10%/%3
#[1] 3
%>%
管道符号,magrittr、dplyr包提供的特殊操作符号。可以无需嵌套或创建中间变量,直接将上一个函数的运算结果输入到下一个函数中进行运算。具体用法请参考 《对照着Excel入门R语言表格数据处理》 一文。
#可配合管道符号 %>%,简化脚本,本质就是省略输入变量;
by_Group_RNA3 <- dt %>% group_by(Group) %>% arrange(desc(RNA_log2FC),.by_group = TRUE)
%in%
匹配符号,判断“%in%”符号前面向量中的元素是否在“%in%”后面向量中存在,是match函数等价方式。
#判断前面一个向量内的元素是否在后面一个向量中,返回布尔值。
a <- c(1,2,3,6)
b <- c(1,5,3,4,1)
a %in% b
#返回内容
#[1] TRUE FALSE TRUE FALSE
!
逻辑运算符中的“非”,可用于取反。
#取反操作
!(a %in% b)
#[1] FALSE TRUE FALSE TRUE
:
“冒号”用于以向量形式生成公差为1的等差数列。
d <- 2:6
d
#[1] 2 3 4 5 6
::
作用域引用符,常用于不同R包具有同名函数时,指定使用特定R包中的某个函数。
dplyr:: select
( )
圆括号除了用于函数名称与函数参数的区分,还可用于打印变量,在之前的 《对照着Excel入门R语言表格数据处理》 一文有展示过。
(filted <- filter(tb,RNA_log2FC <= - 1| RNA_log2FC>= 1))
[ ]
主要用于提取、筛选、替换向量、数据框、矩阵等对象的数据,功能非常强大。
#提取共有元素;
a <- c(1,2,3,6)
b <- c(1,5,3,4,1)
a[a %in% b]
#[1] 1 3
# 筛选数据;
b <- b[1:4]
b
#[1] 1 5 3 4
a[a>2]
#[1] 3 6
# 替换数据;
a[a>2] <- 7
a
#[1] 1 2 7 7
# 创建数据框;
df <- data.frame(a,b)
df
#a b
#1 1 1
#2 2 5
#3 7 3
#4 7 4
# 按索引提取数据;
df[1,]
#得到数据框;
#a b
#1 1 1
df[2]
#得到数据框;
#b
#1 1
#2 5
#3 3
#4 4
df["b"]
#得到数据框;
#b
#1 1
#2 5
#3 3
#4 4
df[,2]
#得到向量;
#[1] 1 5 3 4
df[,"b"]
#得到向量;
#[1] 1 5 3 4
# 行列名称与索引混合使用;
df[2,"b"]
#[1] 5
I
逻辑运算符,表示“或”。需要注意运算的优先级,比如下面的比较运算的优先级要高于逻辑运算!
#结果不是想的那样?
2|3>5
#[1] TRUE
3>5
#[1] FALSE
2|FALSE
#[1] TRUE
&
逻辑运算符,表示“与”。另外,需要注意数值和逻辑值的转换关系,将数值转成逻辑值时;0=FALSE,<>0=TURE;反过来将逻辑值转成数值进行算术运算时,TRUE =1,FALSE=0 。
#逻辑运算:
0&3
#[1] FALSE
1&3
#[1] TRUE
-1&1
#[1] TRUE
2|3
#[1] TRUE
# 算术运算:
2-TRUE
#[1] 1
2+TRUE
#[1] 3
2+FALSE
#[1] 2
TRUE+FALSE
#[1] 1
TRUE-FALSE
#[1] 1
FALSE-TRUE
#[1] -1
$
用于提取数据对象列向量,常用于通过列名提取列。
范例用法:
table(pData(HSMM)$CellType)
@
用于提取S4对象中slot中的数据对象。
范例用法:
head(HSMM @phenoData@data)
以上就是我们在分析数据时会遇到的一些奇奇怪怪的符号,相信大家看完这篇文章后,以后遇到这些符号不会再觉得陌生啦~- 本文固定链接: https://maimengkong.com/learn/893.html
- 转载请注明: : 萌小白 2022年5月2日 于 卖萌控的博客 发表
- 百度已收录