R向量化操作(Data Transformations)
Data Transformations
split(x, f, drop = FALSE, …),x是待划分的向量或数据框,f是定义了组关系的因子变量。
library(MASS)
g <- split(Cars93$MPG.city, Cars93$Origin)
class(g)
## [1] "list"
names(g)
## [1] "USA" "non-USA"
c(median(g[[1]]), median(g[[2]]))
## [1] 20 22
lapply(lst, fun)和sapply(lst, fun),前者返回一个列表,后者优先返回向量,sapply里的s表示simplify。
Lst <- list(a = rnorm(100), b = rnorm(100), c = rnorm(100))
lapply(Lst, range)
## $a
## [1] -2.859 2.976
##
## $b
## [1] -1.961 2.906
##
## $c
## [1] -2.403 3.363
sapply(Lst, range)
## a b c
## [1,] -2.859 -1.961 -2.403
## [2,] 2.976 2.906 3.363
对矩阵或数据框的行或列应用函数
- 对矩阵行apply(mat, 1, fun)。
- 对矩阵列apply(mat, 2, fun)。
- 由于data frame是由其列为元素的列表,所以有lapply(dfrm, fun)和sapply(dfrm, fun)。
- 假设resp是响应变量(response variable),pred是一个数据框,每列为一个predictor。cors <- sapply(pred, cor, y = resp)会计算pred的每列和y的相关系数。
resp <- rnorm(n = 10, mean = 0, sd = 1)
pred <- as.data.frame(matrix(rnorm(n = 10 * 100, mean = 0, sd = 1), 10, 100))
cors <- sapply(pred, cor, y = resp)
mask <- (rank(-abs(cors)) <= 10) #函数rank给出从小到大的排序
best.pred <- pred[, mask]
sapply(Cars93, class)
## Manufacturer Model Type
## "factor" "factor" "factor"
## Min.Price Price Max.Price
## "numeric" "numeric" "numeric"
## MPG.city MPG.highway AirBags
## "integer" "integer" "factor"
## DriveTrain Cylinders EngineSize
## "factor" "factor" "numeric"
## Horsepower RPM Rev.per.mile
## "integer" "integer" "integer"
## Man.trans.avail Fuel.tank.capacity Passengers
## "factor" "numeric" "integer"
## Length Wheelbase Width
## "integer" "integer" "integer"
## Turn.circle Rear.seat.room Luggage.room
## "integer" "numeric" "integer"
## Weight Origin Make
## "integer" "factor" "factor"
tapply:对数据向量按因子分组应用函数
对数据框的行按因子分组应用函数,by(dfrm, fact, fun)
非向量化函数的向量化,mapply(f, vec1, vec2, …, vecN),f有N个参数。
mapply(rep, 1:4, 4:1)
## [[1]]
## [1] 1 1 1 1
##
## [[2]]
## [1] 2 2 2
##
## [[3]]
## [1] 3 3
##
## [[4]]
## [1] 4
mapply(rep, times = 1:4, x = 4:1)
## [[1]]
## [1] 4
##
## [[2]]
## [1] 3 3
##
## [[3]]
## [1] 2 2 2
##
## [[4]]
## [1] 1 1 1 1
gcd <- function(a, b) {if (b == 0) return(a) else return(gcd(b, a%%b))
}
mapply(gcd, c(1, 2, 3), c(9, 6, 3))
## [1] 1 2 3
参考文献
R cookbook 第六章
转载于:https://www.cnblogs.com/stat-cchen/archive/2013/02/19/2917235.html
R向量化操作(Data Transformations)相关推荐
- R语言如何并行处理[parallel package][向量化操作并行优化]
使用数据,长下面这样: 方法:使用parallel包,并行向量化处理,进一步提升原先向量化处理速度. 原始代码: start <- Sys.time() experiment_step1 < ...
- R︱高效数据操作——data.table包(实战心得、dplyr对比、key灵活用法、数据合并)
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 由于业务中接触的数据量很大,于是不得不转战开始 ...
- 二元置信椭圆r语言_一般加性模型的简介、应用举例及R语言操作
一般加性模型的简介.应用及R语言操作举例前文在"平滑回归举例"中,提到当未知自变量和响应变量间的关系,难以选择合适的参数模型描述二者间的响应状态,或者期望探索二者可能的响应曲线形式 ...
- Numpy 整体复制、按块复制、向量化操作、寻找缺失值、填充缺失值
1. 整体复制和按块复制 已知数组: In [17]: a = np.array([1,2,3])In [18]: 返回如下数组: array([1, 1, 1, 2, 2, 2, 3, 3, 3, ...
- R包操作相关:安装、卸载、加载、移除、已经安装的包、包的路径、函数查看等
R包操作相关:安装.卸载.加载.移除.已经安装的包.包的路径.函数查看等 查看已经加载的R包: (.packages()) 列出包所在的路径: .libPaths() 查看已经安装的包的详细信息: i ...
- 贝叶斯统计R语言操作3——假设检验
文章目录 前言 一.贝叶斯假设检验的优点 二.R语言实例操作 1.题目叙述 2. 先验概率 2.后验概率 3. 贝叶斯因子 4. H 0 H_0 H0的后验概率 5. 结论 前言 此篇文章对于贝叶斯 ...
- R语言使用data.table包中的merge函数连接(内连接)两个dataframe数据(Inner join)
R语言使用data.table包中的merge函数连接(内连接)两个dataframe数据(Inner join) 目录 R语言使用data.table包中的merge函数连接(内连接)两个dataf ...
- R语言使用data.table包的merge函数对两个dataframe数据进行全连接(full join)
R语言使用data.table包的merge函数对两个dataframe数据进行全连接(full join) 目录 R语言使用data.table包的merge函数对两个dataframe数据进行全连 ...
- 马恩驰:R向量化运算
转载自:http://blog.csdn.net/littleyearyear/article/details/39940533 一.背景 当今社会,数据量剧增让我们越来越关注计算或算法的效率.&qu ...
最新文章
- 2021年4月16日 阿里供应链Java研发实习面试(二面)
- java数据类型_Java 变量、表达式和数据类型详解
- final关键字的深入理解
- 在SAP Business Application Studio里创建Fiori应用的操作流程
- echarts地图的基本使用配置
- Dart 5-Day
- 流程图的虚线是什么意思_这些新标识啥意思?交警教你怎么走
- 一步步编写avalon组件03:切换卡组件
- 程序员双十一都该买点啥?
- tcpreplay发包工具的简单介绍
- 搭建PHP网站开发环境
- 山大计算机学院夏令营2021,关于举办山东大学2021年暑期未来数学家夏令营的通知...
- 检查App是否有在后台启动前台服务的行为命令
- c程序中的实型常量都是双精度浮点型常量
- 服务的隔离、降级和熔断
- spring JDBCTemplate实现批量插入及返回id
- 百度网盘批量重命名文件免费脚本---2020.07
- vrf名称_VRF中央空调中是什么意思
- 无lnternet_无internet访问,详细教您怎么解决无internet访问
- python遗传算法(应用篇1)--求解一元函数极值
热门文章
- 【408预推免复习】操作系统之IO层次结构和IO控制方式
- oracle9i数据库自动备份,Windows环境下Oracle9i数据库文件的自动备份
- 网络推广策略之如何稳定新站的关键词排名?
- 公司网络推广为你解答蜘蛛为什么有抓取网页却没收录?
- 优化网站的TDK要注意哪些问题?
- 浅析网站标题优化该如何进行?
- 移动端手机网站建设应注意哪些问题?
- java读取pdf_Java 读取PDF中的文本和图片的方法
- 苹果8a1660是什么版本_iOS 13频繁“翻车”,果粉们面对苹果将情何以堪
- 用力和应变片计算弹性模量_第4章 力学量传感器.pptx