R语言实战(一)介绍、数据集与图形初阶
本文对应《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语言实战(一)介绍、数据集与图形初阶的更多相关文章
- R语言实战(三)基本图形与基本统计分析
本文对应<R语言实战>第6章:基本图形:第7章:基本统计分析 =============================================================== ...
- [读书笔记] R语言实战 (六) 基本图形方法
1. 条形图 barplot() #载入vcd包 library(vcd) #table函数提取各个维度计数 counts <- table(Arthritis$Improved) count ...
- R语言实战读书笔记(六)基本图形
#安装vcd包,数据集在vcd包中 library(vcd) counts <- table(Arthritis$Improved)counts # 垂直barplot(counts, main ...
- R语言实战(七)图形进阶
本文对应<R语言实战>第11章:中级绘图:第16章:高级图形进阶 基础图形一章,侧重展示单类别型或连续型变量的分布情况:中级绘图一章,侧重展示双变量间关系(二元关系)和多变量间关系(多元关 ...
- R语言实战(四)回归
本文对应<R语言实战>第8章:回归 回归是一个广义的概念,通指那些用一个或多个预测变量(也称自变量或解释变量)来预测响应变量(也称因变量.效标变量或结果变量)的方法.通常,回归分析可以用来 ...
- R语言实战(第二版)-part 1笔记
说明: 1.本笔记对<R语言实战>一书有选择性的进行记录,仅用于个人的查漏补缺 2.将完全掌握的以及无实战需求的知识点略去 3.代码直接在Rsudio中运行学习 R语言实战(第二版) pa ...
- R 语言实战-Part 5-1笔记
R 语言实战(第二版) part 5-1 技能拓展 ----------第19章 使用ggplot2进行高级绘图------------------------- #R的四种图形系统: #①base: ...
- R语言实战(二)数据管理
本文对应<R语言实战>第4章:基本数据管理:第5章:高级数据管理 创建新变量 #建议采用transform()函数 mydata <- transform(mydata, sumx ...
- R语言实战
教材目录 第一部分 入门 第一章 R语言介绍 第二章 创建数据集 第三章 图形初阶 第四章 基本数据管理 第五章 高级数据管理 第二部分 基本方法 第六章 基本图形 第七章 基本统计方法 第三部分 中 ...
随机推荐
- X86 Booting Sequence
1.BIOS 0xFFFF0 電源正常啟動後,x86 CPU 會先執行 0xFFFF0,也就是 BIOS ROM 的進入點.由於 0xFFFF0 ~ 0xFFFFF 只有少的很可憐的 16 bytes ...
- PL/SQL Developer主数据库连接和窗口连接切换
Oracle开发者估计对PL/SQL Developer都非常熟悉了,里面有些小的功能点大概还有些初学者没发现.PL/SQL Developer支持多连接多窗口,下面详细说说. 主连接的概念 打开PL ...
- ftp发送文件
#!/bin/bash #author:luyongjin IP=220.250.65.22 USERNAME='ftp_hangye20' PASSWORD='oUo2JD7oK#u-epw' #D ...
- mysql登陆问题
1.centos6下mysql5.7的登陆问题 问题的描述:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using p ...
- H5标签--“data自定义数据”
HTML代码部分: <div id="div1" data-zg="中国人" data-zgr="我们是祖国的儿女,我爱祖国"> ...
- 个人项目制作(PSP)
计划: 软件的此功能的实现,个人估算需要一个周的时间. 开发阶段: 需求分析: 1> 运动员希望软件可以记录自己的得分项. 2> 运动员希望软件可以记录自己的得分具体细节. 3>运动 ...
- 学习日志 - Openwrt安装python然后wallproxy
前提: - 先要把U盘插入路由器的usb口,大多数情况Openwrt都会自动挂载的吧,尽量找当前年或前一年的固件.ssh进路由器,可以看到/mnt/sda1 - 让路由器联网,因为需要从网络上下载安 ...
- jquery 设置页面元素不可点击、不可编辑、只读(备忘)
$("input").attr('readonly', true); $("textarea").attr('readonly', true); $(':rad ...
- 浏览器请求URL原理
访问服务器url其实是访问DNS服务器,浏览器询问DNS服务器锁访问的url的IP是什么, 找到之后就会返回结果,找不到就继续去其他DNS中寻找,找到路径之后就会返回一个html文档,浏览器会解析这个 ...
- 荒废了很久的java以及微信公众平台今天拿起来看了看:这里有很好的教程
我的微信公众号刚刚起步: ,感兴趣可以关注一下. 关于java开发微信公众号有一个很好的教程博客:推荐一下:http://blog.csdn.net/lyq8479/article/details/8 ...