, customer[,-c(10,13,20)] r语言,R语言
第四章 基本数据管理
用到的数据
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语言相关推荐
- java设计求圆的面积周长的代码_java编程 1.设计一个求圆的面积和周长的类,要求:1计算当半径r=10和20时,圆的面积,并显示出来 、...
导航:网站首页 > java编程 1.设计一个求圆的面积和周长的类,要求:1计算当半径r=10和20时,圆的面积,并显示出来 . 时间:2018-11-8 java编程 1.设计一个求圆的面积和 ...
- r语言aggredate_R语言 分组计算,不止group_by
最近在研究excel透视图,想到好像自己在R-分组操作并不是很流畅,顺便学习分享一下.R自带数据集比较多,今天就选择一个我想对了解的mtcars数据集带大家学习一下R语言中的分组计算(操作). 目录 ...
- r library car_R语言实战之回归分析
从许多方面来看,回归分析都是统计学的核心.它其实是一个广义的概念,通指那些用一个或多个预测变量(也称自变量或解释变量)来预测响应变量(也称因变量.效标变量或结果变量)的方法.通常,回归分析可以用来挑选 ...
- R语言McSpatial_R语言中帮助和R包
#####获得帮助##### #关于函数的帮助 help(glm) ?glm #关于操作符的帮助 ?`+` #查看帮助文档中例子 example(glm) #搜索主题 help.search(&quo ...
- R语言零基础自学:1、开始R和R的语法
注:学习视频的地址阿雷边学边教R语言第1期-使用R和R的语法 第1期--开始R和R的语法 一. 什么是R语言? 通过编程来进行数据分析和作图的工具 为统计分析和数据分析而生,进入数据分析行业或领域之必 ...
- [R语言] R语言PCA分析教程 Principal Component Methods in R
R语言PCA分析教程 Principal Component Methods in R(代码下载) 主成分分析Principal Component Methods(PCA)允许我们总结和可视化包含由 ...
- r语言descstats_R语言学习笔记之聚类分析
原标题:R语言学习笔记之聚类分析 taoyan:伪码农,R语言爱好者,爱开源. 个人博客: https://ytlogos.github.io/ 使用k-means聚类所需的包: factoextra ...
- 打印20以内的素数c语言,c语言编程输出2~100之间的所有素数(每行输出10个),并将它们打印出来....
C语言编程实现计算1到100之间的奇数之和 你好,可以这样编程]#includeintmain(){inti,sum=0;//定义循环变量和存放求和的变量sumfor(i=1;i C语言:用for循环 ...
- Ubuntu 20.04 服务器安装 R / RStudio / RStudio Server
记录:笔者是一名计算机菜鸟,但是最近在一位同济老师的指导下进行一个生信相关的项目(单细胞水平的基因表型分类相关),原本是在本地的电脑上进行,但复现一篇NC上的文章代码,发现一个case竟然吃那么大的 ...
最新文章
- python中locked_Python锁类| 带示例的locked()方法
- Red and Black (找到一个标记一个)
- linux如何查看nginx是否启动
- VB 几种打开文本文件速度对比
- python骗局-代购被骗?Python带你征服骗子!直接干掉他的网站!亲身经历!
- 手机通话记录统计分析
- Dev C++下载安装
- 电子计算机审计,计算机审计存在的风险
- verilog符号 与或非 异或_与非门、或非门、异或门、同或门的逻辑表达式和逻辑符号怎么写...
- 【奋斗人生】心得日记(20191112至20191230)
- 【转载】阿里云域名解析将一个域名指向另一个域名
- MySQL进阶探索--之STRAIGHT JOIN用法简介
- RTX 3060Ti和rtx2080Super的区别
- cpar文件的导入导出及注意事项
- Log4j的基本应用
- 8 精通matlab入门求微分方程组的通解特解数值解看这篇文章就够了
- maven、md5、git学习
- 京东主图视频上传,如何关联商品投放?
- 《SysML精粹》学习记录--第五章
- 网站架构:页面静态化,图片服务器分离,负载均衡