本文对应《R语言实战》前3章,因为里面大部分内容已经比较熟悉,所以在这里只是起一个索引的作用。

第1章       R语言介绍

获取帮助函数

help(), ?

查看函数帮助

example()

使用函数示例

vignette()

列出vignette文档

vignette(“svmdoc”)

打开对应文档

管理工作空间

getwd()

显示当前工作目录

setwd(“mydirectory”)

修改当前工作目录为mydirectory

rm(objectlist)

删除对象

save.image(file = “myfile”)

保存工作空间到myfile.RData

save(objectlist, file = “myfile”)

保存指定对象到myfile.RData

load(file = “myfile”)

读取一个工作空间到当前会话中(.RData)

输入与输出

source(“filename”)

在当前会话中执行R脚本

sink(“filename”, append = F, split = F)

输出文本。append = T追加内容而不是覆盖文件,split = T将结果同时发送到屏幕和文件

pdf(“filename.pdf”)

PDF文件(以下都是图形输出方式)

win.metafile(“filename.wmf”)

Windows图元文件

png(“filename.png”)

PNG文件

jpeg(“filename.jpg”)

JPEG文件

bmp(“filename.bmp”)

BMP文件

postscript(“filename.ps”)

PostScript文件

第2章       创建数据集

数据结构:标量、向量、矩阵、数组、数据框、列表

标量与向量:

标量只含一个元素,向量为多个相同模式的标量组成的一维数组,使用c()进行组合

矩阵:

相同模式元素的二维数组,通过matrix()创建

数组:

维度可以大于2,元素模式相同,通过array()创建

数据框:

不同的列可以包含不同模式的数据

选取数据框中的特定变量

patientdata$status

简化方式:attach(), detach()或单独使用with()

示例:

#简化前
summary(mtcars$mpg)
plot(mtcars$mpg, mtcars$disp)
plot(mtcars$mpg, mtcars$wt) #简化后
attach(mtcars)
summary(mpg)
plot(mpg, disp)
plot(mpg, wt)
detach(mtcars)

  

局限性:存在名称相同的对象时,有可能出现masked的警告,原始对象为优先

with()函数示例

#with()用法

with(mtcars, {
        summary(mpg)
        plot(mpg, disp)
        plot(mpg, wt)
        })

  

这种方式,赋值仅为with()内的局部变量,要使内部赋值在接下来的代码中可以用,需要使用特殊赋值符( <<- )保存到全局变量中。

#nokeepstats只在with()内可以使用,keepstats可以在全局使用

with(mtcars, {
       nokeepstats <- summary(mpg)
       keepstats <<- summary(mpg)
        })

  

选取数据框中特定实例:实例标识符

#指定标识符,用于标记各类打印输出和图形中实例名称
patientdata <- data.frame(patientID, age, diabetes, status, row.names = patientID)

  

因子:

分为类别变量和有序类别变量。

#有序类别变量,默认排序规则为字母顺序
status <- c(“Poor”, “Improved”, “Excellent”, “Poor”)
status <- factor(status, ordered = TRUE)
#编码为1 = Excellent, 2 = Improved, 3 = Poor

#自定义顺序
status <- factor(status, order = TRUE, levels = c(“Poor”, “Improved”, “Excellent”))

  

列表:

#创建列表
mylist <- list(object1, object2, …)
mylist <- list(name1 = object1, name2 = object2, …) #提取元素
mylist[[1]]
mylist[[“name1”]]
mylist$name1

  

导入数据

#带分隔符的文件
mydataframe <- read.table(file, header = FALSE, sep = “”, row.names = “name”)
#默认stringAsFactors = TRUE一般需要修改
#colClasses为每一列数据指定class
#更多设置信息参考帮助文档

  

#Excel数据
library(RODBC)
channel <- odbcConnectExcel(“myfile.xls”)
mydataframe <- sqlFetch(channel, “mysheet”)
odbcClose(channel)
library(xlsx)
workbook <- “c:/myworkbook.xlsx”
mydataframe <- read.xlsx(workbook, 1) #XML数据
library(XML) #网页抓取数据
?readLines
?grep
?gsub
library(XML)
library(RCurl) #SPSS数据
library(foreign)
?read.spss
library(Hmisc)
?spss.get #SAS数据
#旧版SAS使用与SPSS数据类似方法
#新版SAS可以先将数据存为.csv文件再导入
#Stata数据
library(foreign)
?read.dta #netCDF数据
library(ncdf)
nc <- nc_open(“mynetCDFfile”)
myarray <- get.var.ncdf(nc, myvar) #HDF5数据
library(hdf5) #访问数据库管理系统
#ODBC接口
library(RODBC)
myconn <- odbcConnect(“mydsn”, uid = “Rob”, pwd = “password”)
crimedat <- sqlFetch(myconn, Crime)
pundit <- sqlQuery(myconn, “select * from Punishment”)
close(myconn) #DBI相关包
library(DBI)
library(RJDBC)
library(RMy)
library(ROracle)
library(RPostgreSQL)
library(RSQLite)

  

ODBC包主要函数

odbcConnect(dsn, uid = “”, pwd = “”)

建立一个ODBC连接

sqlFetch(channel, sqltable)

读取表

sqlQuery(channel, query)

向ODBC数据库提交查询并返回结果

sqlSave(channel, mydf, tablename = sqtable, append = FALSE)

将数据库写入或更新(append = TRUE)到ODBC数据库中的某个表中

sqlDrop(channel, sqtable)

删除ODBC数据库中的某个表

close(channel)

关闭连接

处理数据对象的实用函数

length(object)

显示对象中元素/成分的数量

dim(object)

显示某个对象的维度

str(object)

显示某个对象的结构

class(object)

显示某个对象的类或类型

mode(object)

显示某个对象的模式

names(object)

显示某对象中各成分的名称

c(object1, object2, …)

将对象合并入一个向量

cbind(object1, object2, …)

按列合并对象

rbind(object1, object2, …)

按行合并对象

object

输出对象

head(object)

列出某个对象的开始部分

tail(object)

列出某个对象的最后部分

ls()

显示当前的对象列表

rm(object1, object2, …)

删除对象

rm(list = ls())可以删除几乎所有对象

newobject <- edit(object)

编辑对象并另存为newobject

fix(object)

直接编辑对象

第3章       图形初阶

因为总体来讲,作为最终展示的作图,往往使用ggplot2包更好一点。然而在数据分析的过程中,需要首先对数据分布进行一定了解,这就需要一些比较基础的图形。由于本章只是对于图形的创建、保存、颜色、标注等进行解说,因此并不是我们关心的重点,所以我们仅仅将一些通用的方法以索引的方式罗列出来,作为参考。而作为最终展示的图形,在后面的ggplot2包的学习中,将会进行更加详细的阐述。

#图形的输出与保存
pdf(“mygraph.pdf”)
plot(x, y)
title(“my graph”)
dev.off() #图形参数修改
#通过par()函数修改参数,这种方式设定的参数值,在会话结束前一直有效
#生成一个可以修改的当前图形参数列表
opar <- par(no.readonly = TRUE) #设置参数
par(lty = 2, pch = 17) #作图
plot(dose, drugA, type = ‘b’) #还原原始设置
par(opar)

  

另外也可以直接在绘图函数里设置参数键值对,只对当前图形有效

符号和线条

pch

绘制的点符号(0:25)

cex

绘制点大小(默认1)

lty

绘制线形状(1:6)

lwd

绘制线宽度(默认1)

颜色

col

默认的绘图颜色,若颜色向量小于绘图数量,则循环使用

col.axis

坐标轴刻度文字的颜色

col.lab

坐标轴标签名称的颜色

col.main

标题颜色

col.sub

副标题颜色

fg

前景色

bg

背景色

#用于创建连续型颜色向量的函数
rainbow()
heat.colors()
terrain.colors()
topo.colors() #多阶灰度色
gray() #以上函数使用help()查询具体使用参数

  

文本尺寸、图形尺寸略

添加标题,可以在plot()函数里声明,也可以用title()函数追加:main标题、sub副标题、xlab, ylab坐标轴标签

设置坐标轴范围xlim, ylim

添加坐标轴函数axis(side, at = x)

添加参考线函数abline(h = yvalues, v = xvalues)

添加图例函数legend(location, title, legend, …)

添加文本标注函数text()向绘图区域内部添加,mtext()向图形边界之一添加

数学标注:详见help(plotmath)

图形组合

#方法1
par(mfrow = c(nrows, ncols))
#接下来的几幅图排列在nrows, ncols矩阵中 #方法2
layout(matrix(c(1, 1, 2, 3)), 2, 2, byrow = TRUE)
#指在2*2矩阵中,第一幅图占据(1,1)和(1,2)第二幅(2,1)第三幅(2,2)
layout(matrix(c(1, 1, 2, 3)), 2, 2, byrow = TRUE,
widths = c(3, 1), heights = c(1, 2))
#各列宽度及各行高度组成的向量,即矩阵的四个部分,宽之比3:1高之比1:2

  

多幅图形的精细控制:

通过par()函数里的fig参数设置多个图形的相对位置,可以多试几次,直到找到最合适的参数。

opar <- par(no.readonly = TRUE)

#设置散点图
par(fig = c(0, 0.8, 0, 0.8))
plot(mtcars$wt, mtcars$mpg,
xlab = "Miles Per Gallon",
ylab = "Car Weight") #在上方和右侧添加箱线图
par(fig = c(0, 0.8, 0.55, 1), new = TRUE)
boxplot(mtcars$wt, horizontal = TRUE, axes = FALSE)
par(fig = c(0.65, 1, 0, 0.8), new = TRUE)
boxplot(mtcars$mpg, axes = FALSE) mtext("Enhanced Scatterplot", side = 3, outer = TRUE, line = -3)
par(opar)

  

R语言实战(一)介绍、数据集与图形初阶的更多相关文章

  1. R语言实战(三)基本图形与基本统计分析

    本文对应<R语言实战>第6章:基本图形:第7章:基本统计分析 =============================================================== ...

  2. [读书笔记] R语言实战 (六) 基本图形方法

    1.  条形图 barplot() #载入vcd包 library(vcd) #table函数提取各个维度计数 counts <- table(Arthritis$Improved) count ...

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

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

  4. R语言实战(七)图形进阶

    本文对应<R语言实战>第11章:中级绘图:第16章:高级图形进阶 基础图形一章,侧重展示单类别型或连续型变量的分布情况:中级绘图一章,侧重展示双变量间关系(二元关系)和多变量间关系(多元关 ...

  5. R语言实战(四)回归

    本文对应<R语言实战>第8章:回归 回归是一个广义的概念,通指那些用一个或多个预测变量(也称自变量或解释变量)来预测响应变量(也称因变量.效标变量或结果变量)的方法.通常,回归分析可以用来 ...

  6. R语言实战(第二版)-part 1笔记

    说明: 1.本笔记对<R语言实战>一书有选择性的进行记录,仅用于个人的查漏补缺 2.将完全掌握的以及无实战需求的知识点略去 3.代码直接在Rsudio中运行学习 R语言实战(第二版) pa ...

  7. R 语言实战-Part 5-1笔记

    R 语言实战(第二版) part 5-1 技能拓展 ----------第19章 使用ggplot2进行高级绘图------------------------- #R的四种图形系统: #①base: ...

  8. R语言实战(二)数据管理

    本文对应<R语言实战>第4章:基本数据管理:第5章:高级数据管理 创建新变量 #建议采用transform()函数 mydata <- transform(mydata, sumx ...

  9. R语言实战

    教材目录 第一部分 入门 第一章 R语言介绍 第二章 创建数据集 第三章 图形初阶 第四章 基本数据管理 第五章 高级数据管理 第二部分 基本方法 第六章 基本图形 第七章 基本统计方法 第三部分 中 ...

随机推荐

  1. java的异常

    下面是我对Java异常知识的几个小总结,也算是资源回收一下 一.Java异常的知识 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的.比如说,你的代码少了一个分号,那么运 ...

  2. web应用安全防御100技 好书再次阅读, 变的只是表象,被概念迷惑的时候还是静下心来回顾本质

    如何进行web应用安全防御,是每个web安全从业者都会被问到的问题,非常不好回答,容易过于肤浅或流于理论,要阐明清楚,答案就是一本书的长度.而本文要介绍一本能很好回答这个问题的优秀书籍——<we ...

  3. Wireshark工控协议

    Wireshark是一个强大开源流量与协议分析工具,除了传统网络协议解码外,还支持众多主流和标准工控协议的分析与解码. 序号 协议类型 源码下载 简介 1 Siemens S7 https://git ...

  4. python之在线PK游戏(第六天)

      本节作业: 熟练使用类和模块,写一个交互性强.有冲突的程序. 故本次写了一个文字回合制的PK游戏,系统主程序为根目录下的:game_menu.py 1. 系统功能模块: 第六天的作业:文字游戏程序 ...

  5. arm 2440 linux 应用程序 nes 红白机模拟器 第2篇 InfoNES

    InfoNES 支持 map ,声音,代码比较少,方便 移值. 在上个 LiteNES  的基础上,其实不到半小时就移值好了这个,但问题是,一直是黑屏.InfoNES_LoadFrame ()  Wo ...

  6. OpenCart中文乱码解决方法

      遇到在列表页面调用部分截取中文内容的时候,被截取的内容有乱码,改数据库的编码没用,后来发现:utf8_substr(strip_tags(html_entity_decode($result['d ...

  7. &和&&的区别

    &和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false. ...

  8. C++中的4个类型转换关键字

    转载:http://poplars.blog.163.com/blog/static/1394221742013021111210567/ n多书里面推荐要养成使用转型关键字的习惯,几年过去了,感觉还 ...

  9. 虚拟机中Linux系统盘空间不足

    虚拟机中Linux系统盘在使用过程中, 出现空间不足的提示. 使用命令du --max-depth=1 -h 查看Home目录下各个文件占用空间, 发现是./cache(隐藏文件)占用很大空间.进入c ...

  10. python读取和写入csv文件

    读取csv文件: def readCsv(): rows=[] with file(r'E:\py\py01\Data\system.csv','rb') as f: reads=csv.reader ...