入门书籍:R语言实战

进度:1-4章

摘要:

1)实用的包

forecast:用于做时间序列预测的,有auto.arima函数

RODBC:可以用来读取excel文件。但据说R对csv格式适应更加良好,相应的导入导出均较为方便(read.table, write等)

reshape:目前用到rename函数,可以方便的对数据变量重命名

fCalendar:在日期输入处提及,据说对日期运算有奇效,但无具体示例。同理如lubridate

sqldf:在数据选取处提及,可代替subset以及各种where,即sql语句

2)数据导入

data.frame(变量1,变量2,变量3)

attach/detach:一套使用,不必重复输入数据框,直接输入变量名即可定位/同理还有with

read.table(文件路径,header=TRUE,sep=","):这里sep为分隔符

3)数据处理

is.na:判断缺失值是否存在

transform: 在按需创建新变量,并保存到数据框时,可用。举例如

mydata<-transform(mydata,
sumx=x1+x2,
meanx=(x1+x2)/2)

逻辑运算符:见P68,内有!=,不等于,!x非x等等

变量分组赋值重编码:先把所有数值赋值为NA,然后逐个判断,并赋予新值

test<-within(数据,{
agecat<-NA
agecat[age>75]<-"Elder"
agecat[age>=55 & age <=76]<-"Middle")
}

within:如上例用于赋值,与with类似但允许修改数据框,另外有提及recode,recodevar等充电吗

fix(数据):直接弹出交互式编辑器,可编辑数据

rename:用于重命名,reshape包

is.na:用于判断缺失值是否存在,缺失值为TRUE,非缺失值为FALSE(不能用==比较,因为默认缺失值不可比较)

na.rm=TRUE:用于在sum/avg等计算中,如果有缺失值时,忽略缺失值。否则函数会报错

na.omit:用于删除包含缺失值的行,一般数据量小时不建议使用

as.Date:表示将要输入的数据是日期,默认为yyyy-mm-dd,但可通过format(具体见P73)修改,举例如:

mydata《-as.Date("2014-10-12")

myformat<-"%m/%d/%y"
date<-as.Date(日期型变量,myformat直接引用之前的变量)

Sys.Date():输入当天日期;

Date():输入当前时间‘

format(x,format=输入的日期):指定输入什么日期

difftime():计算时间间隔

 today<-Sys.Date()
born<-as.Date("1999-11-11")
difftime(today,born,units="weeks"/"days"/"hours"/"months"...)

is/as.datetype:判断,生成某个数据类型,如numeric, vector, logical等

order:数据排序,结合attach使用

merge():用by=变量名,来指定合并对象。这里NA影响很大,具体看帮助里的实例,可用incomparables去掉不要的观测值

cbind:不管其他,直接横向连接

rbind:总想合并,必须拥有相同的变量,顺序可以不一样

然后有提及一堆子集选取,但最好的是

subset/sqldf:用于数据提取。见P79-80

另外:

1:50,表示从第一个变量取到第50个变量

1-50:这里表示第一个变量不取……

R入门<三>-R语言实战第4章基本数据管理摘要的更多相关文章

  1. [读书笔记] R语言实战 (四) 基本数据管理

    1. 创建新的变量 mydata<-data.frame(x1=c(2,2,6,4),x2=c(3,4,2,8)) #方法一 mydata$sumx<-mydata$x1+mydata$x ...

  2. R语言实战 第7章

    # 01 描述性统计分析 --------------------------------------------------------------#针对总体的mycavs = mtcars[,c( ...

  3. R语言实战读书笔记(五)高级数据管理

    5.2.1 数据函数 abs: sqrt: ceiling:求不小于x的最小整数 floor:求不大于x的最大整数 trunc:向0的方向截取x中的整数部分 round:将x舍入为指定位的小数 sig ...

  4. R语言实战读书笔记(四)基本数据管理

    4.2 创建新变量 几个运算符: ^或**:求幂 x%%y:求余 x%/%y:整数除 4.3 变量的重编码 with(): within():可以修改数据框 4.4 变量重命名 包reshape中有个 ...

  5. R语言实战(四)—— 基本数据管理

    一.基础操作 1.根据数据信息,创建数据框 > manager <- c(1,2,3,4,5) > date <- c("10/24/08","1 ...

  6. [读书笔记] R语言实战 (五) 高级数据管理

    1. 数值函数 1) 数学函数 2) 统计函数 3. 数据标准化 scale() 函数对矩阵或者数据框的指定列进行均值为0,标准化为1的标准化 mydata <- data.frame(c1=c ...

  7. R语言实战(三)基本图形与基本统计分析

    本文对应<R语言实战>第6章:基本图形:第7章:基本统计分析 =============================================================== ...

  8. R语言实战(一)——基础入门

    从今天开始接触R语言,主要参考的书籍是<R语言实战>. 1.安装R语言程序 Windows:http://mirror.bjtu.edu.cn/cran/ Linux:apt-get in ...

  9. R语言实战(第二版)-part 1笔记

    说明: 1.本笔记对<R语言实战>一书有选择性的进行记录,仅用于个人的查漏补缺 2.将完全掌握的以及无实战需求的知识点略去 3.代码直接在Rsudio中运行学习 R语言实战(第二版) pa ...

随机推荐

  1. Visual Studio SetSite failed for package [JavaScriptWebExtensionsPackage] 错误解决方案一则

    安装 AspNet5.ENU.RC1.exe Microsoft ASP.NET and Web Tools 2015 (RC) – Visual Studio 2015 打开VS后发生了错误 < ...

  2. Java Generics and Collections-2.1

    2.1 子类化以及替换原理 为什么List<Integer> 不是List<Number> 的子类? 首先看下面的代码,这段代码是编译不过的 package java_gene ...

  3. AngularJS笔记---路由视图

    最近有同事提到过关于ng-view的使用, 其实自己也不懂了,由于最近一直在做AngularJs的Rearch,所以就看了一些关于ng-view的国外博客. 做过ASP.NET MVC4的都知道, 我 ...

  4. svm使用的一般步骤

    LIBSVM 使用的一般步骤是:1)准备数据集,转化为 LIBSVM支持的数据格式 :[label] [index1]:[value1] [index2]:[value2] ...即 [l类别标号] ...

  5. codevs1022 覆盖[Hungary 二分图最大匹配]

    codevs1022 覆盖 有一个N×M的单位方格中,其中有些方格是水塘,其他方格是陆地.如果要用1×2的矩阵区覆盖(覆盖过程不容许有任何部分重叠)这个陆地,那么最多可以覆盖多少陆地面积. 输入描述  ...

  6. MySql 存储过程、触发器和权限问题

    存储过程 1.1 什么是存储过程 存储过程,带有逻辑的sql语句 之前的sql没有条件判断,没有循环 存储过程带上流程控制语句(if  while) 1.2 存储过程特点 1)执行效率非常快!存储过程 ...

  7. iframe多层嵌套时获取元素总结

    父页面获取子页面元素: 注意:onload事件 jQuery获取: $("iframe").contents().find("holder")......; ( ...

  8. 【腾讯GAD暑期训练营游戏程序班】游戏场景管理作业说明文档

    场景管理作业说明文档                              用了八叉树的算法,测出三层时最快,区域范围内物体数量为21块,控制台打印出的结果如图所示: 场景物体:游戏中,所有具有空 ...

  9. 软件工程(FZU2015)赛季得分榜,第五回合

    目录 第一回合 第二回合 第三回合 第四回合 第五回合 第6回合 第7回合 第8回合 第9回合 第10回合 第11回合 积分规则 积分制: 作业为10分制,练习为3分制:alpha30分: 团队项目分 ...

  10. classpath: VS classpath*:

    同名资源存在时,classpath: 只从第一个符合条件的classpath中加载资源,而classpath*: 会从所有的classpath中加载符合条件的资源 classpath*:需要遍历所有的 ...