如何把列表转化为整齐的矩阵?

mylist<-as.list(iris[,1:4])
result<-sapply(mylist,mean)
result<-lapply(mylist,mean)
#结果
【1】Sepal.Length  Sepal.Width Petal.Length  Petal.Width 5.843333     3.057333     3.758000     1.199333
【2】 $Sepal.Length
[1] 5.843333$Sepal.Width
[1] 3.057333$Petal.Length
[1] 3.758$Petal.Width
[1] 1.199333

由上可以发现两个的输出类型是不一样的。【1】是向量,【2】是list.

将list转化为matrix的操作:

#第一种是先转成数据框,再转置
t(as.data.frame(result))
class(A)
[1] "matrix"
#第二种是使用取子集的二元操作符作为sapply的参数
t(sapply(result,'['))
#将result传入rbind
do.call('rbind',result)
class(C)
[1] "matrix"

常用的函数:

1.tapply()用法:

tapply(X, INDEX, FUN = NULL, ..., default = NA, simplify = TRUE)
#INDEX 为因子(分类变量)

例:

tapply(X=iris$Sepal.Length,INDEX=list(iris$Species),FUN=mean)
#结果
setosa versicolor  virginica 5.006      5.936      6.588 

2.类似的函aggregate()

aggregate(x, by, FUN, ..., simplify = TRUE, drop = TRUE)
#x为数据框

例子用这两个函数简写就是:

with(iris,tapply(Sepal.Length,list(Species),mean))
with(iris,aggregate(Sepal.Length,by=list(Species),mean))
#仅输出数据结构不一样,aggregate更加友好,为数据框

3.mapply()函数

mapply(FUN, ..., MoreArgs = NULL, SIMPLIFY = TRUE,USE.NAMES = TRUE)
#两个参数都要变化,可以用它

例:

 mapply(rep, 1:4, 4:1)
[[1]]
[1] 1 1 1 1[[2]]
[1] 2 2 2[[3]]
[1] 3 3[[4]]
[1] 4

4.outer()函数,类似矩阵计算中的外积,直接对两个数相乘

outer(X, Y, FUN = "*", ...)
*函数可以自定义
例:
outer(month.abb, 1999:2003, FUN = "paste")[,1]       [,2]       [,3]       [,4]       [,5]      [1,] "Jan 1999" "Jan 2000" "Jan 2001" "Jan 2002" "Jan 2003"[2,] "Feb 1999" "Feb 2000" "Feb 2001" "Feb 2002" "Feb 2003"[3,] "Mar 1999" "Mar 2000" "Mar 2001" "Mar 2002" "Mar 2003"[4,] "Apr 1999" "Apr 2000" "Apr 2001" "Apr 2002" "Apr 2003"[5,] "May 1999" "May 2000" "May 2001" "May 2002" "May 2003"[6,] "Jun 1999" "Jun 2000" "Jun 2001" "Jun 2002" "Jun 2003"[7,] "Jul 1999" "Jul 2000" "Jul 2001" "Jul 2002" "Jul 2003"[8,] "Aug 1999" "Aug 2000" "Aug 2001" "Aug 2002" "Aug 2003"[9,] "Sep 1999" "Sep 2000" "Sep 2001" "Sep 2002" "Sep 2003"
[10,] "Oct 1999" "Oct 2000" "Oct 2001" "Oct 2002" "Oct 2003"
[11,] "Nov 1999" "Nov 2000" "Nov 2001" "Nov 2002" "Nov 2003"
[12,] "Dec 1999" "Dec 2000" "Dec 2001" "Dec 2002" "Dec 2003"
#例如用其生成九九乘法表
f<-function(x,y){left<-paste0(x,"*",y,"=")right<-x*yre<-paste0(left,right)return(re)
}
vec1<-vec2<-vec
outer(vec1,vec2,FUN=f)
#结果[,1]    [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]     [,9]    [1,] "1*1=1" "1*2=2"  "1*3=3"  "1*4=4"  "1*5=5"  "1*6=6"  "1*7=7"  "1*8=8"  "1*9=9" [2,] "2*1=2" "2*2=4"  "2*3=6"  "2*4=8"  "2*5=10" "2*6=12" "2*7=14" "2*8=16" "2*9=18"[3,] "3*1=3" "3*2=6"  "3*3=9"  "3*4=12" "3*5=15" "3*6=18" "3*7=21" "3*8=24" "3*9=27"[4,] "4*1=4" "4*2=8"  "4*3=12" "4*4=16" "4*5=20" "4*6=24" "4*7=28" "4*8=32" "4*9=36"[5,] "5*1=5" "5*2=10" "5*3=15" "5*4=20" "5*5=25" "5*6=30" "5*7=35" "5*8=40" "5*9=45"[6,] "6*1=6" "6*2=12" "6*3=18" "6*4=24" "6*5=30" "6*6=36" "6*7=42" "6*8=48" "6*9=54"[7,] "7*1=7" "7*2=14" "7*3=21" "7*4=28" "7*5=35" "7*6=42" "7*7=49" "7*8=56" "7*9=63"[8,] "8*1=8" "8*2=16" "8*3=24" "8*4=32" "8*5=40" "8*6=48" "8*7=56" "8*8=64" "8*9=72"[9,] "9*1=9" "9*2=18" "9*3=27" "9*4=36" "9*5=45" "9*6=54" "9*7=63" "9*8=72" "9*9=81"

outer()在3d作图中的应用。

f<-function(x,y,z) x^2-10*cos(2*pi*x)+y^2+10*cos(2*pi*y)+20
x<-y<-seq(-5,5,0.01)
z<-outer(x,y,f)
image(x,y,z)
Z<-rank(z)
library(rgl)
bg3d("slategray")#设置背景色
persp3d(x,y,z,col=rainbow(as.integer(max(Z)))[Z])
play3d(spin3d())

读书笔记之 数据框操作与常用函数相关推荐

  1. 大数据之路读书笔记-03数据同步

    大数据之路读书笔记-03数据同步 如第一章所述,我们将数据采集分为日志采集和数据库数据同步两部分.数据同步技术更通用的含义是不同系统间的数据流转,有多种不同的应用场景.主数据库与备份数据库之间的数据备 ...

  2. JPA学习笔记---JPA数据的操作:增加,删除,修改,获取,使用JPQL进行查询

    JPA学习笔记---JPA数据的操作:增加,删除,修改,获取,使用JPOL进行查询 创梦技术交流平台:资源下载,技术交流,网络赚钱: 交流qq群:1群:248318056 2群:251572072 技 ...

  3. 大数据之路读书笔记-16数据应用

    大数据之路读书笔记-16数据应用 全球知名咨询公司麦肯锡称:"数据,已经 透到当今每一个行业和业务职能领域,成为重要的生产要素.人们对于海量数据的挖掘和运用,预示着新一波生产率增长和消费者盈 ...

  4. 大数据之路读书笔记-15数据质量

    大数据之路读书笔记-15数据质量 随着 IT向DT 时代的转变,数据的重要性不言而喻,数据的应用也日趋繁茂,数据正扮演着一个极其重要的角色.而对于被日益重视的数据,如何保障其质量也是间里巴巴乃至业界都 ...

  5. 大数据HiveSQL学习笔记三-查询基础语法以及常用函数

    大数据HiveSQL学习笔记三-查询基础语法以及常用函数 一.基础语法 1.SELECT -列名- FROM -表名- WHERE -筛选条件- 如:需要根据城市,性别找出匹配的10个用户 user_ ...

  6. tensorFlow基础操作及常用函数

    tensorFlow基础操作及常用函数 1. 安装Tensorflow 2. TensorFlow基本操作 3. TensorFlow常用函数 3.1 常用矩阵创建方式 3.2 高斯初始化及洗牌操作 ...

  7. spark 数据框 删除列_pandas 常用的数据处理函数

    在数据分析过程中,首先就是对数据进行清洗和处理,而使用 python 进行处理的朋友们,对 pandas 包肯定是熟悉不过的了.pandas 的功能很强大,基本的数据处理操作都可以找到对应函数去使用, ...

  8. 关于数据治理的读书笔记 - 企业数据治理的“道、法、术、器”

    读书笔记的历史文章, <关于数据治理的读书笔记 - 数据治理.数据管理和数据管控的理解> <关于数据治理的读书笔记 - 什么是数据治理?> 数据治理的本质是管理数据资产,改善数 ...

  9. 【读书笔记】数据出现多重共线性情况:岭回归,lasso回归,适应性lasso回归,偏最小二乘回归

    # 2.2.3 数据出现多重共线性情况:岭回归,lasso回归,适应性lasso回归,偏最小二乘回归 # 有一些关于多重共线性的度量,其中之一是容忍度(tolerance)或(等价的)方差膨胀因子(v ...

最新文章

  1. /etc/syslog.conf文件作用
  2. go get安装第三方包的前提条件和步骤
  3. bootbox显示中文的按钮
  4. 20165211 2017-2018-2 《Java程序设计》第4周学习总结
  5. 典型用户信息管理系统
  6. 一种table超出高度自动出滚动条的解决方案
  7. 国外问答网站Quora数据的爬虫 Java
  8. 固定时间减当前时间有没有超72小时_上海龙湖英迪格酒店正式部署畅捷固定资产管理系统...
  9. 我眼中的ASP.NET Core之微服务 (二)
  10. 滑动验证码研究-后续
  11. Java并发AtomicIntegerArray类
  12. Adobe Flash Player30.0.0.113离线安装包
  13. Delphi 2010控件安装
  14. 机器学习——朴素贝叶斯分类器
  15. chrome必备插件
  16. 2020腾讯教育盛典,乐博乐博被评为“年度科技创新教育品牌”
  17. 论文阅读:A Novel Graph based Trajectory Predictor with Pseudo Oracle
  18. 记一次面试(被骗)经历
  19. SDOI R2 咕咕记
  20. 通俗讲义 | 深入浅出云计算、大数据、人工智能

热门文章

  1. 蔚来资本宣布完成约4亿美元二期基金募集
  2. 俞敏洪回应新东方向国家图书馆捐课
  3. 什么值得买发布年货消费报告 预制菜GMV同比增长39.41%
  4. 泰森中国宣布与阿里云达成战略合作
  5. 博通2021财年第三季度营收67.8亿美元,半导体业务营收50亿美元
  6. 英特尔CEO:将在行业整合背景下大力收购半导体企业
  7. Canalys:尽管面临供应压力 2021年智能手机的出货量仍预计增长12%
  8. 广电总局拟规定设立未成年人频道
  9. 小米11 Pro屏幕细节曝光:至少要上2K+分辨率
  10. 4499元起!坚果R2正式开售:回归即推重磅旗舰