4.2 创建新变量

几个运算符:

^或**:求幂

x%%y:求余

x%/%y:整数除

4.3 变量的重编码

with():

within():可以修改数据框

4.4 变量重命名

包reshape中有个函数rename,可以改名 rename(df,c(manage='managerID',date='testDate'))

names(df)[2]<-'newname'

4.5 缺失值

is.na():检查缺失值,是返回TRUE,否返回FALSE

na.rm=TRUE选项可以用,比如

y<-sum(x,na.rm=TRUE)

移除缺失值

newdf<-na.omit(df)

4.6 日期值

as.Date():其中参数input_format的取值,真难记,默认日期是yyyy-mm-dd

%d:数字日期

%a:缩写的星期名

%A:非缩写的星期名

%m:00~12

%b:缩写的月份

%B:非缩写的月份

%y:两位年份

%Y:四位年份

Sys.Date():当前日期

date():返回当前日期和时间,为什么不好好起名字呢,非要叫Date和date

可以用format提取一些东西

today <- Sys.Date()
format(today, format = "%B %d %Y")
format(today, format = "%A")

日期可以相减

startdate <- as.Date("2004-02-13")
enddate <- as.Date("2009-06-22")
days <- enddate - startdate

也可以

today <- Sys.Date()
format(today, format = "%B %d %Y")
dob <- as.Date("1956-10-10")
format(dob, format = "%A")

4.6.1 将日期转换为字符型变量

as.character

4.7 类型转换

is.numeric  -->  as.numeric

is.character

is.vector

is.data.frame

is.factor

is.logical

4.8 数据排序

order()

newdata <- leadership[order(leadership$age), ]  这是升序,前面加个减号就是降序

newdata <- leadership[order(gender, -age), ]  这是按性别升序,年龄降序排序

4.9 数据集的合并

4.9.1 添加列

横向合并两个数据框,用merge()

newdf<-merge(dfA,dfB,by="ID")

newdf<-merge(dfA,dfB,by=c("ID","Country"))

如果不需要连接,用cbind就可以

4.9.2 添加行

rbind

4.10 数据集取子集

4.10.1 选入变量

选列

data<-df[,c(6:10)]

或按名称选择

myvars <- c("q1", "q2", "q3", "q4", "q5")
newdata <- leadership[myvars]

4.10.2 剔除变量

myvars <- names(leadership) %in% c("q3", "q4")  得到交集
newdata <- leadership[!myvars]  取反,结果等于去除了q3,q4

或者

newdata <- leadership[c(-7, -8)]

4.10.3 选入观测

which函数

4.10.4 subset

newdata <- subset(leadership, age >= 35 | age < 24, select = c(q1, q2, q3, q4))
newdata <- subset(leadership, gender == "M" & age > 25, select = gender:q4)

4.10.5 随机抽样

sample

sample<-df[sample(1:nrow*(df),3,replace=FALSE] 不放回抽样

4.11 使用SQL操作数据框

library(sqldf)
newdf <- sqldf("select * from mtcars where carb=1 order by mpg", row.names = TRUE)
newdf <- sqldf("select avg(mpg) as avg_mpg, avg(disp) as avg_disp,gear from mtcars where cyl in (4, 6) group by gear")

R语言实战读书笔记(四)基本数据管理的更多相关文章

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

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

  2. R语言实战读书笔记(三)图形初阶

    这篇简直是白写了,写到后面发现ggplot明显更好用 3.1 使用图形 attach(mtcars)plot(wt, mpg) #x轴wt,y轴pgabline(lm(mpg ~ wt)) #画线拟合 ...

  3. R语言实战读书笔记(二)创建数据集

    2.2.2 矩阵 matrix(vector,nrow,ncol,byrow,dimnames,char_vector_rownames,char_vector_colnames) 其中: byrow ...

  4. R语言实战读书笔记1—语言介绍

    第一章 语言介绍 1.1 典型的数据分析步骤 1.2 获取帮助 help.start() help("which") help.search("which") ...

  5. R语言实战读书笔记2—创建数据集(上)

    第二章 创建数据集 2.1 数据集的概念 不同的行业对于数据集的行和列叫法不同.统计学家称它们为观测(observation)和变量(variable) ,数据库分析师则称其为记录(record)和字 ...

  6. R语言实战读书笔记(八)回归

    简单线性:用一个量化验的解释变量预测一个量化的响应变量 多项式:用一个量化的解决变量预测一个量化的响应变量,模型的关系是n阶多项式 多元线性:用两个或多个量化的解释变量预测一个量化的响应变量 多变量: ...

  7. R语言实战读书笔记(六)基本图形

    #安装vcd包,数据集在vcd包中 library(vcd) counts <- table(Arthritis$Improved)counts # 垂直barplot(counts, main ...

  8. R语言实战读书笔记(一)R语言介绍

    1.3.3 工作空间 getwd():显示当前工作目录 setwd():设置当前工作目录 ls():列出当前工作空间中的对象 rm():删除对象 1.3.4 输入与输出 source():执行脚本

  9. R语言实战读书笔记(十三)广义线性模型

    # 婚外情数据集 data(Affairs, package = "AER") summary(Affairs) table(Affairs$affairs) # 用二值变量,是或 ...

随机推荐

  1. Codeforces Round #243 (Div. 1) A题

    http://codeforces.com/contest/425/problem/A 题目链接: 然后拿出这道题目是很多人不会分析题目,被题目吓坏了,其中包括我自己,想出复杂度,一下就出了啊!真是弱 ...

  2. PHPStorm+PHP5.6+WIN7+IIS7

    文件下载 以下为参考网址,如无法打开或变动,请自行搜索,获取最新版本文件请行搜索 PHP Manager:http://www.iis.net/downloads/community/2010/09/ ...

  3. 解决IE不支持position:fixed问题

    #box { /* 非IE6浏览器使用固定元素 */ position:fixed; top:0; left:0; /* IE6改为绝对定位,并通过css表达式根据滚动位置更改top的值 */ _po ...

  4. 压测2.0:云压测 + APM = 端到端压测解决方案

    从压力测试说起 压力测试是确立系统稳定性的一种测试方法,通常在系统正常运作范围之外进行,以考察其功能极限和隐患.与功能测试不同,压测是以软件响应速度为测试目标的,尤其是针对在较短时间内大量并发用户的访 ...

  5. LA 3350

    The NASA Space Center, Houston, is less than 200 miles from San Antonio, Texas (the site of the ACM ...

  6. CSS Ruler 前端工具

    CSS Ruler是一款在线的CSS单位工具. CSS Ruler 彩蛋爆料直击现场 http://katydecorah.com/css-ruler/

  7. D&F学数据结构系列——前驱和后继

    前驱和后继 本文所述为二叉排序树的前驱和后继,如果想了解二叉排序树的概念,可以参考我的博文http://www.cnblogs.com/sage-blog/p/3864640.html 给定一个二叉查 ...

  8. POJ 1144 Network(Tarjan)

    题目链接 题意 : 找出割点个数. 思路 : Tarjan缩点,u是割点的充要条件是:u要么是具有两个以上子女的深度优先生成树的根,要么不是根,而有一个子女v满足low[v]>=dfn[u]. ...

  9. iOS手势学习UIGestureRecognizer & cocos2d 手势推荐

    iOS手势学习UIGestureRecognizer & cocos2d 手势推荐 手势识别类型: UILongPressGestureRecognizer  // 长按UIPanGestur ...

  10. 弹性ScrollView,和下啦刷新的效果类似 实现下拉弹回和上拉弹回

    今天做了一个弹性ScrollView,和下啦刷新的效果类似,我想这个很多需求都用的这种效果 其实这是一个自定义的scrollView,上代码,这是我写在一个公共的组件包里的 package com.p ...