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

对矩阵或数据框的行或列应用函数

  1. 对矩阵行apply(mat, 1, fun)
  2. 对矩阵列apply(mat, 2, fun)
  3. 由于data frame是由其列为元素的列表,所以有lapply(dfrm, fun)sapply(dfrm, fun)
  4. 假设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)相关推荐

  1. R语言如何并行处理[parallel package][向量化操作并行优化]

    使用数据,长下面这样: 方法:使用parallel包,并行向量化处理,进一步提升原先向量化处理速度. 原始代码: start <- Sys.time() experiment_step1 < ...

  2. R︱高效数据操作——data.table包(实战心得、dplyr对比、key灵活用法、数据合并)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 由于业务中接触的数据量很大,于是不得不转战开始 ...

  3. 二元置信椭圆r语言_一般加性模型的简介、应用举例及R语言操作

    一般加性模型的简介.应用及R语言操作举例前文在"平滑回归举例"中,提到当未知自变量和响应变量间的关系,难以选择合适的参数模型描述二者间的响应状态,或者期望探索二者可能的响应曲线形式 ...

  4. Numpy 整体复制、按块复制、向量化操作、寻找缺失值、填充缺失值

    1. 整体复制和按块复制 已知数组: In [17]: a = np.array([1,2,3])In [18]: 返回如下数组: array([1, 1, 1, 2, 2, 2, 3, 3, 3, ...

  5. R包操作相关:安装、卸载、加载、移除、已经安装的包、包的路径、函数查看等

    R包操作相关:安装.卸载.加载.移除.已经安装的包.包的路径.函数查看等 查看已经加载的R包: (.packages()) 列出包所在的路径: .libPaths() 查看已经安装的包的详细信息: i ...

  6. 贝叶斯统计R语言操作3——假设检验

    文章目录 前言 一.贝叶斯假设检验的优点 二.R语言实例操作 1.题目叙述 2. 先验概率 2.后验概率 3. 贝叶斯因子 4. H 0 H_0 H0​的后验概率 5. 结论 前言 此篇文章对于贝叶斯 ...

  7. R语言使用data.table包中的merge函数连接(内连接)两个dataframe数据(Inner join)

    R语言使用data.table包中的merge函数连接(内连接)两个dataframe数据(Inner join) 目录 R语言使用data.table包中的merge函数连接(内连接)两个dataf ...

  8. R语言使用data.table包的merge函数对两个dataframe数据进行全连接(full join)

    R语言使用data.table包的merge函数对两个dataframe数据进行全连接(full join) 目录 R语言使用data.table包的merge函数对两个dataframe数据进行全连 ...

  9. 马恩驰:R向量化运算

    转载自:http://blog.csdn.net/littleyearyear/article/details/39940533 一.背景 当今社会,数据量剧增让我们越来越关注计算或算法的效率.&qu ...

最新文章

  1. 2021年4月16日 阿里供应链Java研发实习面试(二面)
  2. java数据类型_Java 变量、表达式和数据类型详解
  3. final关键字的深入理解
  4. 在SAP Business Application Studio里创建Fiori应用的操作流程
  5. echarts地图的基本使用配置
  6. Dart 5-Day
  7. 流程图的虚线是什么意思_这些新标识啥意思?交警教你怎么走
  8. 一步步编写avalon组件03:切换卡组件
  9. 程序员双十一都该买点啥?
  10. tcpreplay发包工具的简单介绍
  11. 搭建PHP网站开发环境
  12. 山大计算机学院夏令营2021,关于举办山东大学2021年暑期未来数学家夏令营的通知...
  13. 检查App是否有在后台启动前台服务的行为命令
  14. c程序中的实型常量都是双精度浮点型常量
  15. 服务的隔离、降级和熔断
  16. spring JDBCTemplate实现批量插入及返回id
  17. 百度网盘批量重命名文件免费脚本---2020.07
  18. vrf名称_VRF中央空调中是什么意思
  19. 无lnternet_无internet访问,详细教您怎么解决无internet访问
  20. python遗传算法(应用篇1)--求解一元函数极值

热门文章

  1. 【408预推免复习】操作系统之IO层次结构和IO控制方式
  2. oracle9i数据库自动备份,Windows环境下Oracle9i数据库文件的自动备份
  3. 网络推广策略之如何稳定新站的关键词排名?
  4. 公司网络推广为你解答蜘蛛为什么有抓取网页却没收录?
  5. 优化网站的TDK要注意哪些问题?
  6. 浅析网站标题优化该如何进行?
  7. 移动端手机网站建设应注意哪些问题?
  8. java读取pdf_Java 读取PDF中的文本和图片的方法
  9. 苹果8a1660是什么版本_iOS 13频繁“翻车”,果粉们面对苹果将情何以堪
  10. 用力和应变片计算弹性模量_第4章 力学量传感器.pptx