分析数据时你可能遇到一些奇奇怪怪的符号……
卖萌控的博客
点击这里进入电脑版页面!体验更好
分析数据时你可能遇到一些奇奇怪怪的符号……
2022-5-2 萌小白


在分析数据的时候,不管是数据表格中还是脚本中经常会出现一些奇奇怪怪的符号。这些符号中有些符号用法简单,而另一些符号功能特别强大。下面就以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)


以上就是我们在分析数据时会遇到的一些奇奇怪怪的符号,相信大家看完这篇文章后,以后遇到这些符号不会再觉得陌生啦~
发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容