第四章 基本数据管理

用到的数据

leadership

mydata

1.stringAsFactor=FALSE  字符不转换为因子(创建数据框选项参数)

a)如: > leadership

2.创建新变量

a)变量名

i.表达式可包含多种运算符和函数

ii.+  -  *  /

iii.X%%Y(求余) X%/%Y(整数除法)

b)以下得到的为独立变量

i.> sumx

ii.> meanx

c)将变量整合的原始数据框中

i.方法1

1.> mydata$sumx

2.> mydata$meanx

ii.方法2(绑定数据框,简化代码)

1.> attach(mydata)

> mydata$sumx

> mydata$meanx

> detach(mydata)

iii.方法3(使用 transform() )

1.> mydata

3.变量的重编码

a)逻辑运算符

i.  >=  ==(严格等于)  !=(不等于)  x|y(x或y)  x&y(x和y)

ii.isTRUE(x)  测试x是否为TRUE

b)实例

i.将leadership中的年龄(99)替换为NA,年龄99为错误值

1.leadership$age[leadership$age == 99]

ii.将leaderhip中age(连续型变量)重新编码为类别型变量 agecat

1.“Elder”: age >= 66; “Middle Aged”: age >40 & age <66;  “Young”: age >= 18 & age <=40;

2.方法1

a)> leadership$agecat[leadership$age > 66]

> leadership$agecat[leadership$age > 40 & leadership$age <66]

> leadership$agecat[leadership$age >= 18 & leadership$age <= 40]

3.方法2  使用 within()

a)> leadership

agecat[age>=66]

agecat[age>40 & age<66]

agecat[age>=18 & age<=40]

c)程序包中的变量重编码函数

i.car包中的 recode()

1.可以重编码数值型,字符型,向量或因子

ii.doBy包中的 recodevar()

iii.R中自带的 cut()

1.可以将一个数值型变量按值域切割为多个区间,并返回一个因子

4.变量的重命名

a)交互式修改,编辑器

i.fix(object)

b)编程方法

i.names()

ii.实例

> names(leadership)[2]

>names(leadership)[1:5]

leadership 第一到五列分别重名为 item1,…,item5

c)Plyr包中的 rename() 函数

i.> rename(dataframe, c(oldname=”newname”,oldname=”newname”,……))

5.缺失值 NA

a)NA (Not Avaliable) 在R中数值型和字符型缺失值都用NA表示

i.缺失值NA判断:is.na(object)

b)在R中,无限的或者不可能出现的数值不标记为缺失值NA

c)可使用赋值语句将某些值重新编码为缺失值(如将leadership中年龄99编码为缺失值)

i.正无穷大:+∞  识别: is.infinite()

ii.负无穷大:-∞    识别: is.infinite()

iii.不可能出现的值(如2/0):NaN  识别:is.nan()

d)na.rm=TRUE 大多数数值型函数都有此选项,移除缺失值,并使用剩余值进行计算

e)na.omit(  )  移除所有含有缺失值的观测(行),缺失值较少或较集中时使用

6.日期值

a)日期值通常以字符串(character)形式输入到R中,然后转化为以数值(numeric)形式存储的日期变量

b)as.Date() 用于执行这种转化

i.as.Date(x, “input_format”)  x:字符型向量  input_format:读入日期的格式

ii.日期值的默认读入格式为:yyyy-mm-dd (如:2018-01-22)

> mydate

因为“2018-01-18”,”2018-01-22”与默认格式相同,直接读入即可

c)日期格式

符号含义实例

%d两位数表示的日期(01-31)01 - 31

%a缩写的星期名周一

%A非缩写的星期名星期一

%m两位数表示的月份(00-12)00-12

%b缩写的月份一月

%B非缩写的月份一月

%y两位数的年份18

%Y四位数的年份2018

d)实例:读入日期 “01/05/1991””12/05/1992”

i.> date

> dates

e)日期函数

i.Sys.Date() 返回当天日期 如:”2018-01-18”

ii.date() 返回系统当前时间戳 如:”Thu Jan 18 22:11:14 2018”

f)format()

i.format(x, format=”output_format”)

ii.format() 可接受一个参数,并按某种格式输出结果,可用于提取日期值中的某些成分

iii.实例

1.> today

> format(today, format=”%B%d%Y”)

[1] "一月182018"

> format(today, format=”%A”

[1] "星期四"

iv.R的内部在存储日期时,是使用自1970年1月1日以来的天数表示的,更早的日期用复数表示

1.因此日期值可以执行算术运算

2.可使用 difftime() 来计算时间间隔

a)difftime(x1, x2, units=”days”)

b)units: weeks days hour mins secs

c)实例:计算 Evan 与 HR 生日相差天数

> HR

> Evan < c(“1991-10-08”)

> difftime(HR, Evan, units=”days”)

Time difference of 447 days

7.将日期转换为字符型变量(character)

a)as.charavter()

i.> strDates

b)进行转换后,即可使用一系列字符处理函数(如:取子集,替换,联接等)

c)查看帮助: help(as.date)  help(strftime)

d)日期和时间格式: help(ISOdatetime)

e)相关包: lubtidate包  timeDate包

8.数据类型转换

a)数据类型

数据符号数据类型

numeric数值

character字符(需带””)

vector向量

matrix矩阵

data.frame数据框

factor因子

logical逻辑值

b)数据类型转换函数

判断转换

is.numeric()as.numeric()

is.character()as.character()

is.vector()as.vector()

is.matrix()as.matrix()

is.data.frame()as.data.frame()

is.factor()as.factor()

is.logical()as.logical()

is.datetype()as.datetype()

返回逻辑值 TRUE或FALSE将参数转化为对应的数据类型

9.数值排序

a)order()

i.可对一个数据进行排序(默认为升序,在变量前加减号-即可得到降序结果)

ii.实例

> newdata1

> attach(leadership)

> newdata2

> newdata3

> detach(leadership)

10.数据集的合并

a)向数据框(data.frame)添加列(变量)和行(观测)的方法

b)横向合并,向数据框添加列(变量)

i.横向合并两个数据框(集),即内联结(inner join),merge()

1.merge(x1, x2, by=”c”)

2.x1 x2为数据集,”c”为公共索引(键)

3.实例

> total1

> total2

ii.直接合并两个数据框或矩阵(不需要公共索引),cbind()

1.> total

a)对象A,对象B必须拥有相同的行数

b)且对象A,对象B以同顺序排序

c)纵向合并,向数据框添加行(观测),rbind()

i.> total

ii.dataframeA  dataframeB 必须拥有相同的数量

1.若dataframeA  dataframeB变量不同

a)删除多余变量

b)追加变量

11.数据集取子集

a)选入(保留)变量

i.dataframe[row indices(行数), column indices(列数) ]

> newdata

> myvars

> newdata

ii.paste()字符连接函数

1.> myvars

> newdata

b)删除(丢弃)变量

i.> myvars

> newdata

# names(leadership) 生成了一个含有leadership所有变量名的字符型向量

#names(leadership) %in% c(“q3”,”q4”),返回一个逻辑型向量,names(leadership中每个匹配q3或q4的元素的值为TRUE,反正为FALSE

# !myvars 反转myvars 逻辑值

# newdata

c)选入观测(行)

i.> newdata1

ii.> newdata2 30,]

iii.> attach(leadership)

> newdata3 30, ]

>detach(leadership)

iv.限定时间

> leadership$date

> startdate

> enddate

> newdata = startdate & leadership$date <= enddate), ]  #选取满足要求的日期

v.subset()

1.使用subset() 函数是选择变量和观测的简单方法

2.>newdata1=35|age<24, select=c(q1,q2,q3,q4,q5))

>newdata2 25,

select=gender:q4)

d)随机抽样

i.sample() 可以从数据集中(有放回(raplace=TRUE)或无放回(repalce=FALSE)地抽取一个大小为n的随机样本

1.> mysample

ii.sampling包:抽取和校正调查样本

iii.survery包:分析复杂调查数据

iv.自助法,重新抽样统计方法

12.使用SQL语句操作数据框

a)SQL: Structured Query Language 结构化查询语言

b)需要安装 sqldf 包: install.packages(sqldf)

i.实例1

> library(sqldf)

> newdf

row.names=TRUE)  #row.names=TRUE 延用原始数据框行名

ii.实例2

> sqldf(“select avg(mpg) as avg_mpg, avg(disp) as avg_disp, gear from

mtcars where cyl in (4,6) group by gear”)

, customer[,-c(10,13,20)] r语言,R语言相关推荐

  1. java设计求圆的面积周长的代码_java编程 1.设计一个求圆的面积和周长的类,要求:1计算当半径r=10和20时,圆的面积,并显示出来 、...

    导航:网站首页 > java编程 1.设计一个求圆的面积和周长的类,要求:1计算当半径r=10和20时,圆的面积,并显示出来 . 时间:2018-11-8 java编程 1.设计一个求圆的面积和 ...

  2. r语言aggredate_R语言 分组计算,不止group_by

    最近在研究excel透视图,想到好像自己在R-分组操作并不是很流畅,顺便学习分享一下.R自带数据集比较多,今天就选择一个我想对了解的mtcars数据集带大家学习一下R语言中的分组计算(操作). 目录 ...

  3. r library car_R语言实战之回归分析

    从许多方面来看,回归分析都是统计学的核心.它其实是一个广义的概念,通指那些用一个或多个预测变量(也称自变量或解释变量)来预测响应变量(也称因变量.效标变量或结果变量)的方法.通常,回归分析可以用来挑选 ...

  4. R语言McSpatial_R语言中帮助和R包

    #####获得帮助##### #关于函数的帮助 help(glm) ?glm #关于操作符的帮助 ?`+` #查看帮助文档中例子 example(glm) #搜索主题 help.search(&quo ...

  5. R语言零基础自学:1、开始R和R的语法

    注:学习视频的地址阿雷边学边教R语言第1期-使用R和R的语法 第1期--开始R和R的语法 一. 什么是R语言? 通过编程来进行数据分析和作图的工具 为统计分析和数据分析而生,进入数据分析行业或领域之必 ...

  6. [R语言] R语言PCA分析教程 Principal Component Methods in R

    R语言PCA分析教程 Principal Component Methods in R(代码下载) 主成分分析Principal Component Methods(PCA)允许我们总结和可视化包含由 ...

  7. r语言descstats_R语言学习笔记之聚类分析

    原标题:R语言学习笔记之聚类分析 taoyan:伪码农,R语言爱好者,爱开源. 个人博客: https://ytlogos.github.io/ 使用k-means聚类所需的包: factoextra ...

  8. 打印20以内的素数c语言,c语言编程输出2~100之间的所有素数(每行输出10个),并将它们打印出来....

    C语言编程实现计算1到100之间的奇数之和 你好,可以这样编程]#includeintmain(){inti,sum=0;//定义循环变量和存放求和的变量sumfor(i=1;i C语言:用for循环 ...

  9. Ubuntu 20.04 服务器安装 R / RStudio / RStudio Server

    ​记录:笔者是一名计算机菜鸟,但是最近在一位同济老师的指导下进行一个生信相关的项目(单细胞水平的基因表型分类相关),原本是在本地的电脑上进行,但复现一篇NC上的文章代码,发现一个case竟然吃那么大的 ...

最新文章

  1. python中locked_Python锁类| 带示例的locked()方法
  2. Red and Black (找到一个标记一个)
  3. linux如何查看nginx是否启动
  4. VB 几种打开文本文件速度对比
  5. python骗局-代购被骗?Python带你征服骗子!直接干掉他的网站!亲身经历!
  6. 手机通话记录统计分析
  7. Dev C++下载安装
  8. 电子计算机审计,计算机审计存在的风险
  9. verilog符号 与或非 异或_与非门、或非门、异或门、同或门的逻辑表达式和逻辑符号怎么写...
  10. 【奋斗人生】心得日记(20191112至20191230)
  11. 【转载】阿里云域名解析将一个域名指向另一个域名
  12. MySQL进阶探索--之STRAIGHT JOIN用法简介
  13. RTX 3060Ti和rtx2080Super的区别
  14. cpar文件的导入导出及注意事项
  15. Log4j的基本应用
  16. 8 精通matlab入门求微分方程组的通解特解数值解看这篇文章就够了
  17. maven、md5、git学习
  18. 京东主图视频上传,如何关联商品投放?
  19. 《SysML精粹》学习记录--第五章
  20. 网站架构:页面静态化,图片服务器分离,负载均衡

热门文章

  1. 数据结构与算法A实验六图论(C语言参考代码)
  2. 刘汝佳 例题7-1 除法(暴力解法)
  3. Cuphead开发人员针对Nintendo Switch进行优化的技巧
  4. 解决overlaps the location of another project的办法
  5. 场景剔除--视锥剔除和硬件剔除
  6. 百度搜索接口api_百度站长平台上线落地页视频转存功能,确保专业问答视频资源的质量和稳定性...
  7. 前端性能优化 雅虎军规35条
  8. Java随笔——Java中被除数为0的四种情况及另一特殊情况
  9. R语言与生物统计分析试题
  10. python实现从豌豆荚批量下载样本