R语言学习笔记(四)
6. 数据转换
本章主要讲述apply系列函数:apply、lapply、sapply、tapply、mapply,以及姊妹函数by、split。适用于批量处理数据,而不许循环。
6.1 向量分组
用因子(分组因子)来标识元素的不同组:
> groups <—split(x, f) //x<—c(40,29,39),f<—factor(c(“A”,”B”,”A”))
返回的是一个向量列表,列表中每个向量包含属于同一组的元素
> groups <—unstack(data.frame(x,f)) //返回的是由向量列表转换成的数据框
6.2 将函数应用于每个列表的元素
> lst <—lapply(lst, function) //返回列表形式
> vec <—sapply(lst, function) //如果可能返回向量形式
6.3 将函数应用于矩阵的每一行
> results <—apply(mat, 1, function) //mat是矩阵,1是指逐行
返回结果是一个向量
6.4 将函数应用于矩阵或数据框的每一列
> results <—apply(mat, 2, function) //mat是矩阵,2是指逐列
> lst <—lapply(dfrm, function) //dfrm是数据框,逐列运算
> vec <—sapply(dfrm, function)
如果当数据框中元素是同质的话,也可以用apply。
6.5 将函数应用于组数据
> tapply(x,f, function) //将函数应用于每组数据
6.6 将函数应用于行组
> by(dfrm,fact, function) //因子fact识别dfrm中每行所属类别,函数function的参数应该是一个数据框,by把行放入一个临时数据框,然后调用function。
6.7 将函数应用于平行向量或列表
> mapply(gcd,c(1,2,3), c(9,6,3)) //分别求(1,9)(2,6)(3,3)的最大公约数
gcd是求两个数的最大公约数,其参数是纯量,而非向量化的。
7. 字符串和日期
日期和时间的类:Date、POSIXct、POSIXlt、chron、lubridate、mondate、timeDate
7.1 获取字符串长度
> nchar(“Moe”) //结果是3
>length(“Moe”) //结果是1,不是求的字符串长度
7.2 连接字符串
> paste(“Everybody”,“loves”, “stats.”)
> paste(“Everybody”,“loves”, “stats.”, sep=”-”) //连接的中间间隔为“-”
> paste(vec,“loves”, “stats.”) //vec中每个元素分别和后面字符串相连
> paste(vec,“loves”, “stats.”, collapse=”,and ”) //顶级分隔符
7.3 提取子串
> substr(“Statistics”,1, 4) //提取从第1个元素开始到第4个结束的子串
> cities<— c(“New York, NY”, “Los Angeles, CA”, “Peoria, IL”)
>substr(cities, nchar(cities)-1, nchar(cities)) //结果是”NY””CA” “IL”
7.4 根据分隔符分割字符串
> strsplit(string,delimiter) //delimiter是一个简单字符串或正则表达式
7.5 替代字符串
> sub(old,new, string) //替代第一个子串
> gsub(old,new, string) //替代所有子串
7.6 查看字符串中的特殊字符
用cat输不出时,用print就好
7.7 生成字符串的所有成对组合(笛卡尔积)
> m <—outer(string1, string2, paste, sep=”-”) //sep是连接符
7.8 得到当前日期
> Sys.Date()
7.9 转换字符串为日期
> as.Date(“2014-10-23”)
>as.Date(“10/23/2014”, format=”%m/%d/%y”) //不确定Date的格式时的方法
7.10 转换日期为字符串
> format(Sys.Date())
>as.character(Sys.Date()) //按默认格式
> format(Sys.Date(),format=” %m/%d/%Y”) //规定输出字符串格式,注意”/”、”Y”
7.11 转换年、月、日为日期
> ISOdate(year,month, day) //POSIXct对象,该函数可以处理向量数据
> as.Date(ISOdate(year,month, day)) //转换为Date对象
7.12 得到儒略日期
儒略日期是指从某个任意起始点以来的天数,R中的起始点是1970年1月1日
>as.integer(as.Date(“2014-10-23”))
>julian(as.Date(“2014-10-23”)) //方法2,同时输出起始点
7.13 提取日期的一部分
> p <— as.POSIXlt(as.Date(“2014-10-23”)) //日期、时间对象
> p$mday //指定日期对应的该月中的天数(1~31)
> p$sec //秒数(0~61)
> p$min //分钟数(0~59)
> p$hour //小时(0~23)
> p$mon //月份(0~11)
> p$year //年份(自1900起)
> p$wday //该周的某一天(0~6,Sunday=0)
> p$yday //该年的某一天(0~365)
> p$isdst //夏时令标记
7.14 创建日期序列
> seq(from=s,to=e, by=1) //s和e分别是起始、结束日期
> seq(from=2,by=”month”, length.out=7) //列出7个日期
R语言学习笔记(四)的更多相关文章
- Go语言学习笔记四: 运算符
Go语言学习笔记四: 运算符 这章知识好无聊呀,本来想跨过去,但没准有初学者要学,还是写写吧. 运算符种类 与你预期的一样,Go的特点就是啥都有,爱用哪个用哪个,所以市面上的运算符基本都有. 算术运算 ...
- R语言学习 第四篇:函数和流程控制
变量用于临时存储数据,而函数用于操作数据,实现代码的重复使用.在R中,函数只是另一种数据类型的变量,可以被分配,操作,甚至把函数作为参数传递给其他函数.分支控制和循环控制,和通用编程语言的风格很相似, ...
- R语言学习笔记之: 论如何正确把EXCEL文件喂给R处理
博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html ---- 前言: 应用背景兼吐槽 继续延续之前每个月至少一次更新博客,归纳总结学习心得好习惯. ...
- R语言学习笔记(二)
今天主要学习了两个统计学的基本概念:峰度和偏度,并且用R语言来描述. > vars<-c("mpg","hp","wt") &g ...
- R语言学习笔记:小试R环境
买了三本R语言的书,同时使用来学习R语言,粗略翻下来感觉第一本最好: <R语言编程艺术>The Art of R Programming <R语言初学者使用>A Beginne ...
- R语言学习笔记︱Echarts与R的可视化包——地区地图
笔者寄语:感谢CDA DSC训练营周末上完课,常老师.曾柯老师加了小课,讲了echart与R结合的函数包recharts的一些基本用法.通过对比谢益辉老师GitHub的说明文档,曾柯老师极大地简化了一 ...
- R语言学习笔记(五)绘图(1)
R是一个惊艳的图形构建平台,这也是R语言的强大之处.本文将分享R语言简单的绘图命令. 本文所使用的数据或者来自R语言自带的数据(mtcars)或者自行创建. 首先,让我们来看一个简单例子: ...
- R语言学习笔记:基础知识
1.数据分析金字塔 2.[文件]-[改变工作目录] 3.[程序包]-[设定CRAN镜像] [程序包]-[安装程序包] 4.向量 c() 例:x=c(2,5,8,3,5,9) 例:x=c(1:100) ...
- R语言学习笔记:使用reshape2包实现整合与重构
R语言中提供了许多用来整合和重塑数据的强大方法. 整合 aggregate 重塑 reshape 在整合数据时,往往将多组观测值替换为根据这些观测计算的描述统计量. 在重塑数据时,则会通过修改数据的结 ...
- R语言学习笔记——C#中如何使用R语言setwd()函数
在R语言编译器中,设置当前工作文件夹可以用setwd()函数. > setwd("e://桌面//")> setwd("e:\桌面\")> s ...
随机推荐
- __sync_fetch_and_add系列
__sync_fetch_and_add系列一共有十二个函数,有加/减/与/或/异或/等函数的原子性操作函数,__sync_fetch_and_add,顾名思义,先fetch,然后自加,返回的是自加以 ...
- 值得一做》关于双标记线段树两三事BZOJ 1798 (NORMAL-)
这是一道双标记线段树的题,很让人很好的预习/学习/复习线段树,我不知道它能让别人学习什么,反正让我对线段树的了解更加深刻. 题目没什么好讲的,程序也没什么好讲的,所以也没有什么题解,但是值得一做 给出 ...
- ArcGIS Engine中如何获取Map中已经选择的要素呢(转)
ArcGIS Engine中如何获取Map中已经选择的要素呢 1.使用IEnumFeturea对象获取map中的FeatureSelection,该方法可以获取所有图层的选择要素.IMap中的Fe ...
- Stream01 定义、迭代、操作、惰性求值、创建流、并行流、收集器、stream运行机制
1 Stream Stream 是 Java 8 提供的一系列对可迭代元素处理的优化方案,使用 Stream 可以大大减少代码量,提高代码的可读性并且使代码更易并行. 2 迭代 2.1 需求 随机创建 ...
- [原创]MongoDB C++ 驱动部分问题解决方案(MongoDB C++ Driver)
本文为我长时间开发以及修改MongoDB C++ Driver时的一些问题和解决方案.目前本文所介绍的相关引擎也已经发布闭源版本,请自行下载 库版本以及相关位置:http://code.google. ...
- SQL Server 本地时间和UTC时间的相互转换
SET @UTCDate = DATEADD(hour, DATEDIFF(hour,GETDATE(),GETUTCDATE()), @LocalDate) SET @LocalDate2 = DA ...
- 无限级分类及生成json数据
第一步,先去数据库查询类别数据,然后交给生成json数据的函数处理,代码如下: /*生成类别JSON数据*/ public function wirteJson(){ $dataInfo = \thi ...
- Introduction to Partial View
By Jignesh Trivedi on May 14, 2015 http://www.c-sharpcorner.com/UploadFile/ff2f08/partial-view-in-mv ...
- css属性position的运用
随着web标准的规范化,网页的布局也随之千变万化.各种复杂漂亮有创意的页面布局冲 击这人们的视野,相比以前的table布局那就不是一等级的事儿.这个很大一部分功劳是css 样式的引入.而这个多样性布局 ...
- 编写高质量代码改善C#程序的157个建议——建议19:使用更有效的对象和集合初始化
建议19:使用更有效的对象和集合初始化 依赖于属性和FCL 3.5之后的语法规则,现在我们有了更加简洁有效的对象和集合初始化机制:对象和集合初始化设定项. 对象初始化: class Person { ...