r语言electricity数据集_R语言实战学习

《R语言实战》中文电子版

提取码:lx35

已经学习打卡R语言22天了,可以说是初窥真容——基本了解R的数据和函数;作为程序语言,就是要多练习,多领悟,在实战中发现问题并解决问题。

所以,就以《R语言实战》为基础,开始R语言实战学习,争取再过一个月,能够熟练掌握科研中所需的基本绘图代码和统计学计算,并且熟悉ggplot2包。

同时,之后的所有运行代码都在R-script脚本文件中写,不直接在运行框中写

加油!!!

Day 1

第一章 R语言的介绍R语句由函数和赋值组成。

使用

#表示注释符号。#后出现的所有文本都会被R解释器忽略,因此在书写复杂逻辑时,可灵活利用#进行说明。

获取帮助:help()或?***

工作目录:getwd()获取当前工作目录;setwd(“ ”)设定当前工作目录。

R包:包是R函数、数据、预编译代码以一种定义完善的格式组成的集合。计算机上存储包的目录称为库(library);函数 .libPaths( ) 能够显示库所在的位置,函数library( )则可以显示库中有哪些包。

包的安装:install.packages("");加载包library( )。

R将反斜杠\视作一个转义字符。

批处理:想要以一种重复的、标准化的、无人值守的方式执行某个R程序。

R可以处理GB级到TB级的数据分析问题,但需要专门的手段。

将输出用为输入——结果的重用:将计算结果赋值给新的对象,之后就可以利用前一步的计算结果;如

lift

summary(lift)

Day 2

第二章 创建数据集

R分析前,需要根据个人需求的来创建含有数据的数据集,要求选择一种存储数据的数据结构,再将数据输入或导入到该数据结构中。

2.1、数据集

1、数据集

通常是由数据构成的一个矩形数组,行表示观测,列表示变量。

统计学家称它们为观测-observation和变量-variable,数据库分析师则称其为记录-record和字段-field,数据挖掘/机器学习学科的研究者则把它们叫做示例- example和属性-attribut e。在本书中通篇使用术语观测和变量。

2、数据结构与数据类型

R中存储数据的结构:包括标量、向量、数组、数据框和列表。

R中数据类型:数值型、字符型、逻辑型(TRUE/FALSE)、复数型(虚数)和原生型(字节)。

R将实例标识符称为rownames(行名),将类别型(包括名义型和有序型)变量称为因子( factors)。

2.2 数据结构在R中,对象( object)是指可以赋值给变量的任何事物,包括常量、数据结构、函数,

甚至图形。对象都拥有某种模式,描述了此对象是如何存储的,以及某个类,像print这样的泛型函数表明如何处理此对象。

(1)向量向量是用于存储数值型、字符型或逻辑型数据的一维数组。

函数c()可用来创建向量

单个向量中的数据必须拥有相同的类型或模式(数值型、字符型或逻辑型)。

注意:标量是只含一个元素的向量,例如f

索引:a[c()]

(2)矩阵矩阵是一个二维数组,只是每个元素都拥有相同的模式-只能包含一种数据类型(数值型、字符型或逻辑型)。

函数matrix()用来创建矩阵。

索引:X[i,]指矩阵X中的第i行,X[,j]指第j列, X[i, j]指第i行第j个元素。选择多行或多列时,下标i 和j 可为数值型向量。

(3)数组数组( array)与矩阵类似,但是维度可以大于2。

函数array()用来创建数组。

数组中的数据也只能拥有一种数据类型。

索引:X[i,]指矩阵X中的第i行, X[,j]指第j列, X[i, j]指第i行第j个元素。选择多行或多列时,下标i 和j 可为数值型向量。

(4)数据框数据框的不同的列可以包含不同模式(数值型、字符型等)的数据。

数据框将是你在R中最常处理的数据结构。

函数data.frame()用于创建数据框。

索引:[]或$-被用来选取一个给定数据框中的某个特定变量。

在每个变量名前都键入一次patientdata$可能会让人生厌,所以不妨走一些捷径。可以联合使用函数attach()和detach()或单独使用函数with()来简化代码。函数attach()可将数据框添加到R的搜索路径中;函数detach()将数据框从搜索路径中移除。

实例标识符:实例标识符(case identifier)可通过数据框操作函数中的rowname选项指定。

(5)因子(factor)类别(名义型)变量和有序类别(有序型)变量在R中称为因子( factor)。

函数factor()以一个整数向量的形式存储类别值,整数的取值范围是[1... k ](其中k 是名义型变量中唯一值的个数),同时一个由字符串(原始值)组成的内部向量将映射到这些整数上。

(6)列表列表就是一些对象(或成分,component)的有序集合。列表允许你整合若干(可能无关的)对象到单个对象名下。某个列表中可能是若干向量、矩阵、数据框,甚至其他列表的组合。

函数list()用于创建列表。

2.3 数据的输入

(1)使用键盘输入数据:edit()函数

(2)从带分隔符的文本文件导入数据:read.table()函数,读入为数据框格式

(3)导入Excel数据:读入为数据框格式读取一个Excel文件的最好方式,就是在Excel中将其导出为一个逗号分隔文件( csv),再用read.csv()读入。

xlsx包:函数read.xlsx()读入。

(4)导入XML数据

(5)从网页抓取数据

(6)导入SPSS数据:SPSS数据集可以通过foreign包中的函数read.spss()导入到R中,也可以使用Hmisc包中的spss.get()函数。

(7)导入SAS数据/导入Stata数据/导入netCDF数据/导入HDF5 数据/访问数据库管理系统/通过Stat/Transfer导入数据。

2.4 数据集的标注

通常这种标注包括为变量名添加描述性的标签,以及为类别型变量中的编码添加值标签。

(1)变量标签

(2)值标签

2.5 处理数据对象的使用函数

Day 3

第三章 图形初阶

可以应用于所有图形的通用方法:如何创建和保存图形,然后关注如何修改那些存在于所有图形中的特征,包括图形的标题、坐标轴、标签、颜色、线条、符号和文本标注。

3.1 使用图形在R通常的交互式会话中,你可以通过逐条输入语句构建图形,逐渐完善图形特征,直至得到想要的效果。

通过执行如plot()、 hist()(绘制直方图)或boxplot()这样的高级绘图命令来创建一幅新图形时,通常会覆盖掉先前的图形。可在图形窗口查看历史图形。

3.2 举个栗子

3.3 图形参数通过修改称为图形参数的选项来自定义一幅图形的多个特征(字体、颜色、坐标轴、标题)。

修改图形参数方法1:函数par()——以这种方式设定的参数值除非被再次修改,否则将在会话结束前一直有效。添加参数no.readonly=TRUE可以生成一个可以修改的当前图形参数列表;(先设置参数,再绘制图形)

opar

> par(pch=17) #设置图形参数par()

> plot(cyl,wt) #绘制图形修改图形参数方法2:高级绘图函数直接提供optionname=value的键值对。 这种情况下,指定的选项仅对这幅图形本身有效。(并不是所有的高级绘图函数都允许指定全部可能的图形参数)

plot(dose, drugA,type="b",lty=2,pch=17)

(1)符号和线条对于符号21~25,还可以指定边界颜色( col=)和填充色( bg=)选项lty=用于指定想要的线条类型

(2)颜色在R中,可以通过颜色下标、颜色名称、十六进制的颜色值、 RGB值或HSV值来指定颜色。

函数rgb()可基于红—绿—蓝三色值生成颜色,而hsv()则基于色相—饱和度—亮度值来生成颜色。

函数colors()可以返回所有可用颜色的名称。

R中也有多种用于创建连续型颜色向量的函数,包括rainbow()、 heat.colors()、terrain.colors()、 topo.colors()以及cm.colors()。

多阶灰度色可使用gray()函数生成。

(3)文本属性

图形参数同样可以用来指定字号、字体和字样。

字体:

<1>在Windows系统中,等宽字体映射为TTCourier New,衬线字体映射为TT Times New Roman,无衬线字体则映射为TT Arial( TT代表TrueType)。

par(family="TT Times New Roman") #设置为衬线字体

<2>创建新的映射:在Windows中,可以通过函数windowsFont()来创建这类映射。

windowsFonts(A=windowsFont("Arial Black"),B=("Bookman Old Style"))

par(family="A")

(4)图形尺寸与边界尺寸

3.4 添加文本、自定义坐标轴和图例

(1)标题

title()函数为图形添加标题和坐标轴标签。

title(main="main title",col.main="red",sub="My Sub-title",col.sub="blue"

,xlab="My X label",ylab="My Y label",col.lab="green",cex.lab=0.75) #title()函数可以

设置如颜色、文本大小等图形参数。

(2)坐标轴函数axis()来创建自定义的坐标轴,而非使用R中的默认坐标轴。

创建自定义坐标轴时,你应当禁用高级绘图函数自动生成的坐标轴。参数axes=FALSE将禁用全部坐标轴(包括坐标轴框架线,除非你添加了参数frame.plot=TRUE)。参数xaxt="n"和yaxt="n"将分别禁用X轴或Y轴(会留下框架线,只是去除了刻度)。

axis(side,at=,labels=,pos=,lty=,col=,las=,tck=,...)

(3)参考线

函数abline()可以用来为图形添加参考线。

abline(h=yvalues,v=xvalues)

函数abline()中也可以指定其他图形参数(如线条类型、颜色和宽度)。

如:abline(h=c(1,5,7)) #在y的1/5/7位置添加了水平实线。

(4)图例当图形中包含的数据不止一组时,图例可以帮助你辨别出每个条形、扇形区域或折线各代表哪一类数据。

函数legend()用来添加图例。

其他常用的图例选项包括用于指定盒子样式的bty、指定背景色的bg、指定大小的cex,以及指定文本颜色的text.col。指定horiz=TRUE将会水平放置图例,而不是垂直放置。

legend(location,title,legend,...)

(5)文本标注通过函数text()和mtext()将文本添加到图形上。

text()可向绘图区域内部添加文本;text()函数也通常用来标示图形中的点。

mtext()则向图形的四个边界之一添加文本。

其他常用的选项有cex、 col和font(分别用来调整字号、颜色和字体样式)

text(location,"text to place",pos,...)

mtext("text to place",side,line=n,...)

3.5 图形的组合在R中使用函数par()或layout()可以容易地组合多幅图形为一幅总括图形。

在par()函数中使用图形参数mfrow=c(nrows, ncols)来创建按行填充的、行数为nrows、列数为ncols的图形矩阵。另外,可以使用nfcol=c(nrows, ncols)按列填充矩阵。

栗子:

attach(mtcars)

opar

par(mfrow=c(2,2))

plot(wt,mpg,main="Scatterplot of wt vs. mpg")

plot(wt,disp,main="Scatterplot of wt vs disp")

hist(wt,main="Boxplot of wt")

boxplot(wt,main="Boxplot of wt")

par(opar)

detach(mtcars)函数layout()的调用形式为layout(mat),其中的mat是一个矩阵,它指定了所要组合的多个图形的所在位置。

为了更精确地控制每幅图形的大小,可以有选择地在layout()函数中使用widths=和heights=两个参数;widths = 各列宽度值组成的一个向量;heights = 各行高度值组成的一个向量。

参考help(layout)以了解更多细节。

attach(mtcars)

layout(matrix(c(1,1,2,3),2,2,byrow=T),widths=c(3,1),heights=c(1,2))

hist(wt)

hist(mpg)

hist(disp)

detach

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/528261.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql查看系统可用字符集_MySQL查看所有可用的字符集

MySQL查看所有可用的字符集Enter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 6190Server version: 5.6.24-log MySQL Community Server (GPL)Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserv…

mysql环形复制的弊端_Docker+阿里云centos7+MySQL主从环形复制踩坑记

老规矩&#xff0c;先列坑slave链接master的时候&#xff0c;一直提示2003错误修改了iptables后&#xff0c;docker 下的容器无法正常使用配置正确后&#xff0c;创建新的db部分机器没有同步Got fatal error 1236 from master when reading data from binary log: unknown erro…

mysql general clomun_关于MySQL索引index杂谈

MySQL建索引命令create index index_name on tablename(clomun_name.....);比如建了CREATE INDEX O_N_P_D ON t_db_netspeed(o,n,p,d)建好索引之后&#xff0c;使用SELECT 命令进行查询SELECT COUNT(*) FROM t_db_netspeed WHERE O1这句话也会用到前面建立的索引 O_N_P_D&…

pythoncount函数怎么用_python中count函数简单的实例讲解

python中count函数的用法count()函数描述&#xff1a;统计字符串里某个字符出现的次数&#xff0c;可以选择字符串索引的起始位置和结束位置。语法&#xff1a;str.count("char", start,end) 或 str.count("char")返回值&#xff1a;整型参数说明&#xff…

twisted mysql_在Twisted下用MySQLadbapi获取自增id

D jango的ORM有一个很便捷的功能&#xff0c;其实也应该说是一个很基本的功能吧。就是在对一个model调用 save() 插入到数据库后&#xff0c;会将创建的D jango的ORM有一个很便捷的功能&#xff0c;其实也应该说是一个很基本的功能吧。就是在对一个model调用 save() 插入到数据…

java客户端_Java常用的Http client客户端

Http Client应用场景&#xff1a;Http协议是最重要的网络协议之一&#xff0c;目前移动端的开发、javaweb前后端分离架构&#xff0c;使越来越多的java应用使用http协议访问资源。Http client 大多数场景使用在多个服务之间相互调用rest api&#xff0c;特别是现在微服务架构的…

java 新浪邮箱_使用javamail发送邮件,sina的邮箱作为发信人不行

我参照网上&#xff0c;写了一个简单的使用javamail发送邮件的程序&#xff0c;使用一般的邮件服务器作为发件人&#xff0c;程序都很正常&#xff1b;但使用smtp.sina.com.cn作为邮件服务器地址的发件人时&#xff0c;程序却验证失败&#xff01;这是什么原因&#xff1f;程序…

java des3加密_JAVA加密算法(3)- 对称加密算法(DES、3DES、AES)

对称加密算法概念加密密钥和解密密钥相同&#xff0c;大部分算法加密揭秘过程互逆。特点&#xff1a;算法公开、(相比非对称加密)计算量小、加密速度快、效率高。弱点&#xff1a;双方都使用同样的密钥&#xff0c;安全性得不到保证。常用对称加密算法DES(Data Encryption Stan…

android jni 调用java对象_Android NDK开发之Jni调用Java对象

本地代码中使用Java对象通过使用合适的JNI函数&#xff0c;你可以创建Java对象&#xff0c;get、set 静态(static)和 实例(instance)的域&#xff0c;调用静态(static)和实例(instance)函数。JNI通过ID识别域和方法&#xff0c;一个域或方法的ID是任何处理域和方法的函数的必须…

docker 容器端口访问不到_docker容器无法访问宿主机端口的解决

最近在工作时遇到一个问题,docker容器无法访问宿主机的redis,telent6379端口不通。 经排查发现,该服务器启用了防火墙,防火墙把6379的端口的访问授权给docker0网卡访问即可。 操作如下: firewall-cmd --permanent --zone=trusted --change-interface=docker0 firewall-cmd…

java public权限_Java public 访问权限

Java public 访问权限接下来&#xff0c;我们准备为大家介绍“public 访问权限”。在前面的学习中&#xff0c;我们已经接触过public这个关键字&#xff0c;就是在入口方法 main的前面&#xff0c;现在我们可以来回顾一下对应的代码&#xff1a;public class MyTest{publicstat…

java timer线程结束_Java线程Timer定时器用法详细总结

定时/计划功能主要使用的就是Timer对象&#xff0c;它在内部还是使用多线程的方式进行处理&#xff0c;所以它和线程技术还是有非常大的关联。Timer类主要作用就是设置计划任务&#xff0c;但封装任务的类却是TimerTask类。TimerTask类是一个抽象类。执行任务的时间晚于当前时间…

java在创建对象时必须_Java中5种创建对象的方式

以下是一些在Java中创建对象的方法&#xff1a;1、 使用new关键字使用new关键字是创建对象的最基本方法。这是在java中创建对象的最常见方法。几乎99%的对象都是这样创建的。通过使用这个方法&#xff0c;我们可以调用我们想要调用的任何构造函数(无参数或参数化构造函数)。//J…

java类的定义的实例_Java中类的定义和初始化示例详解

类的定义类的定义格式//创建类class classname{field &#xff1b;//成员属性/字段method&#xff1b;//方法}class为定义类的关键字&#xff0c;classname为类的名字&#xff0c;{ }为类的主体&#xff1b;例如&#xff1a;class person{public string name ; //成员属性publi…

java 多线程池_Java ThreadPoolExecutor线程池 同时执行50个线程

最近项目上有个需求&#xff0c;需要从FTP服务器中下载大批量的数据文件&#xff0c;然后解析该数据文件进行入库&#xff0c;数据库为oracle&#xff0c;最后在通过web工程&#xff0c;以报表和图表的形式进行展现。这些批量的数据文件为纯文本文件&#xff0c;每天产生数据文…

java and dsl_Groovy语法糖以及DSL

前言Why初次接触到Groovy是在实习中接触到一个 纯Groovy写的项目&#xff0c;当时看了下这不就是没有分号的Java么&#xff0c;而且也是有年纪的语言了&#xff0c;并不想投入时间学习。后来工作中越来越多的看到Groovy的身影&#xff0c;Gradle&#xff0c;Spring Cloud Contr…

java序列化的方法_【Java常见序列化与反序列方法总结】

人和电脑在很多方面都是十分相似的&#xff0c;大脑可以看成电脑主机&#xff0c;五官/身体等表面器官就是显示器、鼠标等外设。这篇文章就是想把计算机跟人做类比YY一下序列化和反序列化的机制、用途。如果你是初学者&#xff0c;心里肯定会问究竟什么是序列化/反序列化&#…

python的编码模块char_关于sqlmap当中tamper脚本编码绕过原理的一些总结(学习python没多久有些地方肯定理解有些小问题)...

sqlmap中tamper脚本分析编写置十对一些编码实现的脚本&#xff0c;很多sqlmap里面需要引用的无法实现&#xff0c;所以有一部分例如keywords就只写写了几个引用了一下&#xff0c;其实这里很多脚本运用是可以绕过安全狗的。本人也是刚开始学习python没多久&#xff0c;有一些错…

java的多态怎么理解_JAVA多态的理解

面向对象的三大特性&#xff1a;封装、继承、多态&#xff0c;其中最难理解的就是多态以下是网上某大神给的一个例子&#xff1a;1.继承关系class A {public String show(D obj){return ("A and D");}public String show(A obj){return ("A and A");}}clas…

java class isassignablefrom_Java之——Class的isAssignableFrom方法

转载请注明出处 https://blog.csdn.net/l1028386804/article/details/80508540Class的isAssignableFrom方法定义如下public native boolean isAssignableFrom(Class ? cls);由方法签名可见是一个本地方法 即C代码编写的。以下是JDK中的注释Determines if the class or interfa…