R(五): R常用函数
工作笔记记录,会持续更新....
目录:
- apply
- tapply
- lapply
- sapply
- merge
- substr、substring、strsplit、unlist、paste、paste0、nchar
- table
apply函数:
- apply:apply的中文意思是应用,这个函数的意思是通过将一个函数应用到矩阵或数组中,返回一个向量或数组
- 语法:apply(X, MARGIN, FUN, ...) , 其中X为一个数组;MARGIN为一个向量(表示要将函数FUN应用到X的行还是列),1:表示取行,2:表示取列,c(1,2)表示行、列都计算。
- 示例:
> ma <- matrix(c(1:4, 1, 6:8), nrow = 2);ma
[,1] [,2] [,3] [,4]
[1,] 1 3 1 7
[2,] 2 4 6 8 > apply(ma, 1, sum)
[1] 12 20
> apply(ma, 2, sum)
[1] 3 7 7 15
tapply:
- tapply:是对向量中的数据进行分组处理,而非对整体数据进行处理
- 语法: tapply(X, INDEX, FUN = NULL, ..., simplify = TRUE),
- 其中X通常是一向量;
- INDEX是一个list对象,且该list中的每一个元素都是与X有同样长度的因子;
- FUN是需要计算的函数;
- simplify是逻辑变量,TRUE(默认值),且函数FUN的计算结果总是为一个标量值,那么函数tapply返回一个数组;若取值为FALSE,则函数tapply的返回值为一个list对象。需要注意的是,当第二个参数INDEX不是因子时,函数 tapply() 同样有效,因为必要时 R 会用 as.factor()把参数强制转换成因子
- 示例:
> da
year province sale
1 2007 A 1
2 2007 B 2
3 2007 C 3
4 2007 D 4
5 2008 A 5
6 2008 C 6
7 2008 D 7
8 2009 B 8
9 2009 C 9
10 2009 D 10
> attach(da)
> tapply(sale,list(year,province),mean)
A B C D
2007 1 2 3 4
2008 5 NA 6 7
2009 NA 8 9 10
lapply:
- lapply: (list apply)针对list的apply函数
- 语法: lapply(X, FUN, ...) lapply的返回值是和一个和X有相同的长度的list对象,这个list对象中的每个元素是将函数FUN应用到X的每一个元素
- 示例:
#外卖示例数据
s<-data.frame(shop_id=c('',''),saled=c(35,78),
takeout_cost=c(30,60),delivery_time=c(10,20)) lapply(s,function(x){
if(is.numeric(x)){
mean(x)
}
else{
length(x)
}
}) - 结果:$shop_id [1] 2 $saled [1] 56.5 $takeout_cost [1] 45 $delivery_time [1] 15
sapply:
- sapply:sapply函数和Lapply函数类似,也是对List进行处理,只是在返回结果上,sapply会根据结果的数据类型和结构,重新构建一个合理的数据类型返回
- 语法:sapply(X, FUN,..., simplify = TRUE, USE.NAMES = TRUE)
- 示例:如上例,调用sapply函数返回结果为:
shop_id saled takeout_cost delivery_time
2.0 56.5 45.0 15.0
merge:
- merge: merge是R语言中用来合并数据框的函数
- 语法:merge(x, y, by = intersect(names(x), names(y)), by.x = by, by.y = by, all = FALSE, all.x = all, all.y = all, sort = TRUE, suffixes = c(".x",".y"), incomparables = NULL, ...)
- x,y:用于合并的两个数据框
- by.x,by.y:指定依据哪些行合并数据框,默认值为相同列名的列.
- all.x,all.y:指定x和y的行是否应该全在输出文件
- sort:by指定的列是否要排序
- suffixes:指定除by外相同列名的后缀
- incomparables:指定by中哪些单元不进行合并
- 示例代码:
#数据:
w1:
NAME SCHOOL CLASS ENGLISH
A S1 10 85
B S2 5 50
A S1 4 90
A S1 11 90
C S1 1 12 w2:
NAME SCHOOL CLASS MATHS ENGLISH
A S3 5 80 88
B S2 5 89 81
C S1 1 55 32 merge(w1, w2, all = T) NAME SCHOOL CLASS ENGLISH MATHS
1 A S1 4 90 NA
2 A S1 10 85 NA
3 A S1 11 90 NA
4 A S3 5 88 80
5 B S2 5 50 NA
6 B S2 5 81 89
7 C S1 1 12 NA
8 C S1 1 32 55 merge(w1, w2, by = c("NAME", "SCHOOL", "CLASS"), all = T) NAME SCHOOL CLASS ENGLISH.x MATHS ENGLISH.y
1 A S1 4 90 NA NA
2 A S1 10 85 NA NA
3 A S1 11 90 NA NA
4 A S3 5 NA 80 88
5 B S2 5 50 89 81
6 C S1 1 12 55 32
substr、substring、strsplit、unlist、paste、paste0、nchar:
- substr、substring: 取子字符串
- substr(x,start,stop) : 必须指定开始和结束位置
- substring(text, first, last=1000000 ) :substring()可以不用指定结束位置,默认为1000000,如果字符串的长度小于1000000,则默认为取到字符串的结尾处
- 示例: substring("sinablog",5) 【blog】 substr("sinablog",5,10) 【blog]
- strsplit、unlist:
- strsplit(x, split, extended = TRUE, fixed = FALSE, perl = FALSE) x为待拆分的字符串向量,split拆分模式, fixed为TRUE表示精确匹配
- 使用split函数得到的结果是一个列表,如果希望得到一个向量,可以使用unlist函数
- 示例: unlist(strsplit("a.b.c", "\\.")) 结果:[1] "a" "b" "c"
- nchar: 取字符长度,示例: x<-"sinablog" > nchar(x) 结果:[1] 8
- paste、paste0:
- paste在不指定分割符的情况下,默认分割符是空格, paste0在不指定分割符的情况下,默认分割符是空
- > paste("Hello","world") [1] "Hello world"
> paste0("Hello","world") [1] "Helloworld"
table:
- table 对应的就是统计学中的列联表,是一种记录频数的方法。看示例
> x <- sample(c("a", "b", "c"), 100, replace=TRUE)
> names(table(x))
[1] "a" "b" "c"
> as.numeric(table(x))
[1] 32 33 35
> #转data.frame
> as.data.frame(table(x))
x Freq
1 a 32
2 b 33
3 c 35
R(五): R常用函数的更多相关文章
- R语言:常用函数【转】
数据结构 一.数据管理vector:向量 numeric:数值型向量 logical:逻辑型向量 character:字符型向量list:列表 data.frame:数据框 c:连接为向量或列表len ...
- SQL Server(五)——常用函数
1.数学函数:操作一个数据,返回一个结果 --取上限ceiling select code,name,ceiling(price) from car ; --取下限 floor select floo ...
- Python 学习笔记(五)常用函数
Python内建函数 四舍五入: round() 绝对值: abs() >>> round(1.543,2) 保留两位小数,四舍五入为1.54 1.54 >>> r ...
- SQL Server(五)——常用函数 转
1.数学函数:操作一个数据,返回一个结果 --取上限ceiling select code,name,ceiling(price) from car ; --取下限 floor select floo ...
- 【R】R语言常用函数
R语言常用函数 基本 一.数据管理vector:向量 numeric:数值型向量 logical:逻辑型向量character:字符型向量 list:列表 data.frame:数据框c:连接为向量或 ...
- R的变量类型和常用函数
一.R的变量类型 也可以说是数据存储方式,有: Vector: 一维阵列 Matrics: 二维阵列,其中所有元素是同一数据类型. factor: 种类变量,可使用levels函数来规定种类变量的各级 ...
- R语言数据读入函数read.table
1.read.table:可以读TXT也可以读CSV (1)file:文件名 (2)header:是否包含表头 (3)sep:分隔符,如果不设定默认是空格 (4)dec:标志小数点符号,有些国家的小数 ...
- R语言中apply函数
前言 刚开始接触R语言时,会听到各种的R语言使用技巧,其中最重要的一条就是不要用循环,效率特别低,要用向量计算代替循环计算. 那么,这是为什么呢?原因在于R的循环操作for和while,都是基于R语言 ...
- R语言——基本绘图函数
通过一个综合的例子测试绘图函数 学习的内容是tigerfish老师的教程. 第一节:基本知识 用seq函数产生100位学生的学号. > num = seq(,) > num [] [] [ ...
随机推荐
- 第一次div1做出3道题
第一次div1做出3道题! 再接再厉! 哈利路亚!
- FSM
一.状态机简单介绍 软件设计中的状态机概念,一般是指有限状态机(英语:finite-state machine,缩写:FSM)又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和 ...
- c/c++ main函数执行之前/后
转载自:http://bbs.csdn.net/topics/300103318#r_78088969 main函数之前--真正的函数执行入口或开始 一种解释: 实际上,在可执行文件被加载之后,控制权 ...
- 参数化SQL sql语句
在日常的数据插入时,需要避免数据脚本注入攻击,所以进行参数化SQL很有必要. --说明参数 ) --参数赋值 ' --数据插入 ,'A')
- UI学习笔记---第三天
视图控制器 功能:视图大小变换 \布局视图\响应事件\检测处理内存警告\检测以及处理屏幕旋转\检测视图切换 MVC (model View controller) UIViewController是M ...
- 最小二乘法 python实现
#-*-coding:UTF-8-*- # Created on 2015年10月20日 # @author: hanahimi import numpy as np import random im ...
- 对石家庄铁道大学官网UI设计的分析
在这一周周一,老师给我们讲了PM,通过对PM的学习,我知道了PM 对项目所有功能的把握, 特别是UI.最差的UI, 体现了团队的组织架构:其次, 体现了产品的内部结构:最好, 体现了用户的自然需求.在 ...
- 工作中遇到的问题--使用DTO减少数据字段
Location中包含如下字段以及AMfgObject中关于创建信息的字段,然而有时使用并不需要传输那么多数据,则对其中字段进行过滤. @Entity@Table(name = "LOCAT ...
- MySql数据类型(转)
数值类型 MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数.许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 MySQL 允许我们指 ...
- UI组件(思维导图)