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. 十个实用但IE不支持的CSS属性

    对IE浏览器尤其是IE6的抱怨基本已进入麻痹状态,偶尔甚至产生非常消极的想法:这个世界只有一个浏览器就好了,哪怕这唯一的浏览器就是IE6.当然,这样的想法是非常病态的,马上打消.本文里面,介绍了10个 ...

  2. 使用 Swagger UI 与 Swashbuckle 创建 RESTful Web API 帮助文件

    作者:Sreekanth Mothukuru 2016年2月18日 本文旨在介绍如何使用常用的 Swagger 和 Swashbuckle 框架创建描述 Restful API 的交互界面,并为 AP ...

  3. 关闭WordPress自动加载的Open Sans字体-WP访问过慢原因

    序言 wordpress大概从wp-3.8开始会自动加载Open Sans字体,并引用Google上面的CSS样式.而最近谷歌经常打不开,导致网站访问速度过慢,严重的会拖慢几十秒.Open Sans字 ...

  4. MySQL: InnoDB 还是 MyISAM? (转载)

    MyISAM存储引擎 原文作者:http://www.cnblogs.com/villion/archive/2009/07/09/1893762.html MyISAM是 默认存储引擎.它基于更老的 ...

  5. Map中放置类指针并实现调用

    工作中使用到多进程通信,利用到了map以及multimap来进行实现. 需要做一个简单测试例子,直接上代码. /* * main.cpp * Created on: Oct 28, 2013 * Au ...

  6. linux c first

    创建文件夹mkdir 文件夹名称删除文件夹rm -rf 文件夹名称创建文件touch test.c删除文件rm -f test.c编译gcc -o test test.c在执行只语句后会生成一个*te ...

  7. lintcode : 跳跃游戏

    跳跃游戏 给出一个非负整数数组,你最初定位在数组的第一个位置. 数组中的每个元素代表你在那个位置可以跳跃的最大长度. 判断你是否能到达数组的最后一个位置. 样例 A = [2,3,1,1,4],返回 ...

  8. Protobuf动态解析那些事儿

    需求背景 在接收到 protobuf 数据之后,如何自动创建具体的 Protobuf Message 对象,再做反序列化.“自动”的意思主要有两个方面:(1)当程序中新增一个 protobuf Mes ...

  9. IOS开发中的几种设计模式

    ios开发学习中,经常弄不清楚ios的开发模式,今天我们就来进行简单的总结和探讨~ (一)代理模式 应用场景:当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现.优势:解耦合敏捷原则 ...

  10. Java:编码的详解

    ASCII:美国信息标准信息码,用一个字节的7为表示. ISO8859-1:拉丁码表 欧洲码表 ,用一个字节的8位表示. GB2312:中国的中文编码表. GBK:中国的中文编码表升级,融合了更多的中 ...