本文对应《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. X86 Booting Sequence

    1.BIOS 0xFFFF0 電源正常啟動後,x86 CPU 會先執行 0xFFFF0,也就是 BIOS ROM 的進入點.由於 0xFFFF0 ~ 0xFFFFF 只有少的很可憐的 16 bytes ...

  2. PL/SQL Developer主数据库连接和窗口连接切换

    Oracle开发者估计对PL/SQL Developer都非常熟悉了,里面有些小的功能点大概还有些初学者没发现.PL/SQL Developer支持多连接多窗口,下面详细说说. 主连接的概念 打开PL ...

  3. ftp发送文件

    #!/bin/bash #author:luyongjin IP=220.250.65.22 USERNAME='ftp_hangye20' PASSWORD='oUo2JD7oK#u-epw' #D ...

  4. mysql登陆问题

    1.centos6下mysql5.7的登陆问题 问题的描述:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using p ...

  5. H5标签--“data自定义数据”

    HTML代码部分: <div id="div1" data-zg="中国人" data-zgr="我们是祖国的儿女,我爱祖国"> ...

  6. 个人项目制作(PSP)

    计划: 软件的此功能的实现,个人估算需要一个周的时间. 开发阶段: 需求分析: 1> 运动员希望软件可以记录自己的得分项. 2> 运动员希望软件可以记录自己的得分具体细节. 3>运动 ...

  7. 学习日志 - Openwrt安装python然后wallproxy

    前提: - 先要把U盘插入路由器的usb口,大多数情况Openwrt都会自动挂载的吧,尽量找当前年或前一年的固件.ssh进路由器,可以看到/mnt/sda1 -  让路由器联网,因为需要从网络上下载安 ...

  8. jquery 设置页面元素不可点击、不可编辑、只读(备忘)

    $("input").attr('readonly', true); $("textarea").attr('readonly', true); $(':rad ...

  9. 浏览器请求URL原理

    访问服务器url其实是访问DNS服务器,浏览器询问DNS服务器锁访问的url的IP是什么, 找到之后就会返回结果,找不到就继续去其他DNS中寻找,找到路径之后就会返回一个html文档,浏览器会解析这个 ...

  10. 荒废了很久的java以及微信公众平台今天拿起来看了看:这里有很好的教程

    我的微信公众号刚刚起步: ,感兴趣可以关注一下. 关于java开发微信公众号有一个很好的教程博客:推荐一下:http://blog.csdn.net/lyq8479/article/details/8 ...