R语言常用的数据操作函数整理

apply族函数–提高代码效率神器

R是统计学家整出来的,是一种统计领域的软件工具。面向数组(array-oriented)的语法,它更像数学,方便科学家将数学公式转化为R代码。在使用R时,要尽量用array的方式思考,避免for循环,多用apply族函数代替

vector是一维的array,dataframe可以看作特殊的list。

apply

apply(array, margin, FUN, …)
在array上,沿margin方向,依次调用FUN。返回值为vector。
1表示按行,2表示按列
经实测,只能用在二维及以上的array上,不能用在vector上(如果要应用于vector,请使用lapplysapply

lapply

lapply的作用跟for循环一样,按for循环理解就对了
lapply(list, FUN, …)
list上逐个元素调用FUN。可以用于dataframe上,因为dataframe是一种特殊形式的list。
而lapply输出是list

sapply

sapply(list, FUN, …)
sapply输出是向量

两者相同的地方是输入都为向量or列表,lapply输出list,sapply输出向量
在lapply函数外围在使用unlist函数即可使lapply函数结果为向量格式

unlist(lapply(1:3, function(x) x^2))
[1] 1 4 9

R语言常用的数据操作函数整理_第1张图片

管道函数

%>% #相当于linux中的管道符

library(dplyr)
tmp1<- group_by(PlantGrowth,group) %>% summarise(count=n(),mean=mean(weight),sd=sd(weight))
tmp1

merge

#run一遍就学会了
df1 = data.frame(CustomerId=c(1:6),Product=c(rep("Toaster",3),rep("Radio",3)))
df2 = data.frame(CustomerId=c(2,4,6,7),State=c(rep("Alabama",3),rep("Ohio",1)))
merge(df1, df2, all=TRUE)	#取并集,重复的不加
merge(df1, df2, all=F)	#取交集
merge(df1, df2, all.x=F) #以df1所拥有的显示
merge(df1, df2, all.y=T)	#以df2所拥有的显示
merge(df1, df2)	#默认all=F,取交集

a %in% table

a值是否包含于table中,为真输出TURE,否则输出FALSE

ls.str() #列出变量且带其属性
?NIPTeR #得到帮助文档
class() #函数获取类型,返回字符串

substring

substring(text, first, last = 1000000L)
substring(var ,2 ) #Extract substrings in a character vector.

substring(x, 2, 4:6)
[1] "P11"   "P11-"  "P11-3"
substring(x, 2, 4)
[1] "P11"

unique函数

去重复
#类似unix中的uniq

R语言里的正则匹配

#参考链接:https://www.cnblogs.com/wheng/p/6262737.html
group_name="After-Control.txt"
sub("(.*?)\\.(txt)", "\\1", group_name,perl=TRUE)
#perl=TRUE,使用Perl-compatible regexps
#注意R里面匹配"."的方式比perl多一个反斜杠"\\.";
#"\\" 转义字符,如果要匹配就要写成“\\(\\)”
#其中\\1指第一个括号中匹配的部分

"After-Control"
which(grepl("After|Before",colnames(all_sample_TPM), perl = T)) #"|",表示可选项,即|前后的表达式任选一个
grep/grepl函数

subset

从某一个数据框中选择出符合某条件的数据或是相关的列

> selectresult=subset(df1,name=="aa")
> selectresult
  name age sex
1   aa  20   f
> df1
  name age sex
1   aa  20   f
2   bb  29   m
3   cc  30   f

R语言自带的letters

判断数据类型

is.numeric() 是否数值型数据
is.character() 是否字符型数据
is.vector() 是否向量数据
is.matrix() 是否矩阵数据
is.data.frame() 是否数据框数据
is.factor() 是否因子数据
is.logical() 是否逻辑型数据
以上为判断数据类型的函数,其返回TRUE或FALSE

转换数据类型

as.numeric()
as.character() #字符型向量
as.vector()
as.matrix()
as.data.frame()
as.factor()
as.logical()

判断是否相等

all(a == b) #检验a和b是否完全一致

参考

R语言apply族函数详解
为什么用apply

你可能感兴趣的:(R语言,r语言)