导读
今天是2020年10月24日——纪念程序员的节日
我们一定要记住这群人,他们用知识改变世界的人,在当今时代,如果没有程序员,就没有支付宝,没有微信,没有淘宝,包括疫情期间的健康码,他们是推动社会发展的核心力量,改变时代的领军者。

笔记(一)

一、R语言的介绍
二、创建数据集

第一章 R语言介绍

本章内容:R的安装、熟悉R语言、运行R程序

1、一个R会话示例

> age<- c(1,3,5,2,11,9,3,9,12,3)
> weight<- c(4.4,5.3,7.2,5.2,)
> mean(weight)
[1] 7.06
> sd(weight)
[1] 2.077498
> cor(age,weight)
[1] 0.9075655
> plot(age,weight)
> q()

2、R中的帮助函数(表)

help.start()                 打开帮助文档首页
help("foo")或foo							查看函数foo的帮助(引号可以省略)
help.search("foo")或??foo		以foo为关键词搜索本地帮助文档
example("foo")							函数foo的使用示例(引号可以省略)
RSiteSearch("foo")					以foo为关键词搜索在线文档和邮件列表存档
apropos("foo", mode="function")	列出名称中含有foo的所有可用函数
data()										列出当前已加载包中所含的所有可用示例数据集
vignette()							列出当前已安装包中所有可用的vignette文档
vignette("foo")					为主题foo显示制定的vignette文档

3、用于管理R工作空间的函数(表)

getwd()										显示当前的工作目录
setwd("mydirectory")			修改当前的工作目录为mydirectory
ls()											列出当前工作空间中的对象
rm(objectlist)						移除(删除)一个或多个对象
help(options)							显示可用选项的说明
options()									显示或设置当前选项
history(#)								显示最近使用过的#个命令(默认值为25个)
savehistory("myfile")	保存命令历史到文件myfile中(默认值为.Rhistory)
loadhistory("myfile") 载入一个命令历史文件(默认值为.Rhistory)
save.image("myfile")	保存工作空间到文件myfile中(默认值为.RData)
save(objectlist, file="myfile")  保存指定对象到一个文件中
load("myfile")				读取一个工作空间到当前会话中
q()										退出R。将会询问你是否保存工作空间

4、用于保存图形输出的函数

bmp("filename.bmp")									BMP文件
jpeg("filename.jpg")								JPEG文件
pdf("filename.pdf")									PDF文件
png("filename.png")									PNG文件
postscript("filename.ps")						PostScript文件
svg("filename.svg")									SVG文件
win.metafile("filename.wmf")				Windows文件

5、注意点

  • R语言函数区分大小写。
  • 使用必要的引号。如:install.packages(“gclus”)
  • 在调用函数时要使用括号。
  • 先载入包再使用包中函数

第二章 创建数据集

本章内容:探索R中的数据结构、输入数据、导入数据、标注数据

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

R可以处理的数据类型(模式)包括数值型、字符型、逻辑型、复数型(虚数)和原生型(字节)。

1、向量

向量是用于存储数值型、字符型或逻辑型数据的一维数组。执行组合函数c()可用来创建向量

  • 注意,单个向量中的数据必须拥有相同的数据类型或模式。
  • 标量是只含一个元素的向量

2、矩阵

矩阵是一个二维数组,只是每个元素都拥有相同的模式(数值型、字符型或逻辑型)。可通过matrix()创建矩阵。

一般使用格式:

mymatrix <- matrix(vector, nrow=number_of_rows, ncol=number_of_columns, byrow=logical_value, dimnames=list(char_vector_rownames, char_vector_colnames))

vector 包含了矩阵的元素
nrow和ncol用以指定行和列的维数
dimnames包含可选的、以字符型向量表示的行名和列名。
byrow 则表明矩阵应当按行填充(byrow=TRUE)还是按列填充(byrow=FALSE),默认按列填充。

3、数组

数组(array) 与矩阵类似,但是维度可以大于2.数组可通过array函数创建

myarray <- array(vector, dimensions, dimnames)
vector 包含了数组中的数据
dimensions 是一个数值型向量,给出了各个维度下标的最大值
dimnames 是可选的、各维度名称标签的列表。

4、数据框

由于不同的列可以包含不同模式(数值型、字符型等)的数据,数据框的概念较矩阵来说更为一般。数据框可通过函数data.frame()创建。

attach()、detach()、with()函数

  • 函数attach()可将数据框添加到R的搜索路径中。
  • demo ——绘制行驶英里数(mpg)与排放量(disp)和车身重量(wt)的散点图
attach(mtcars)
	summary(mpg)
	plot(mpg,disp)
	plot(mpg,wt)
detach(mtcars)

另一个方法

summary(mtcars$mpg)
plot(mtcars$mpg,mtcars$disp)
plot(mtcars$mpg,mtcars$wt)
  • 函数detach()将数据框从搜索路径中移除。值得注意的是,detach()并不会对数据框本身做任何处理。

另一种方法

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

在这种情况下,花括号{}之间的语句都针对数据框mtcars执行,这样无需担心名称冲突了。如果仅有一条语句,那么花括号{}可以省略。

  • 函数with()的局限性在于,赋值仅在此函数的括号内生效。
  • demo
> with(mtcars,{
  stats <- summary(mpg)
  stats
})
 ---结果显示
> stats
 ---报错

如果需要创建在with()结构以外存在的对象,使用特殊赋值符<<-代替标准赋值符<-即可,它可将对象保存到with()之外的全局环境中。

5、因子

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

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

6、列表

列表是R的数据类型中最为复杂的一种。一般来说,列表就是一些对象(或成分,component)的有序集合。列表允许你整合若干个(可能无关的)对象到单个对象名下。

  • 注意,R中的下标不从0开始,而从1开始。

7、数据的输入 (含表)

函数read.table()的选项

header 一个表示文件是否在第一行包含了变量名的逻辑型变量

sep 分开数据值得分隔符。默认是sep="",这表示了一个或多个空格、制表符、换行或回车。使用sep=",“来读取用逗号来分隔行内数据的文件,使用sep=”\t"来读取使用制表符来分隔行内数据的文件

row.names 一个用于指定一个或多个行标记符的可选参数

col.names 如果数据文件的第一行不包括变量名(header=FALSE),你可以用col.names去指定衣一个包含变量名的字符向量。如果header=FALSE以及col.names选项被省略了,变量会被分别命名为V1、V2,以此类推。

na.strings 可选的用于表示缺失值的字符向量。比如说,na.string = c("-9", “?”)把-9和?值在读取数据的时候转换为NA

colClasses 可选的分配到每一列的类向量。比如说,colClasses=c(“numeric”,“numeric”,“character”,“NULL”,“numeric”)把前两列读取为数值型向量,把第三列读取为字符型向量,跳过第四列,把第五列读取为数值型向量。如果数据有多余五列,colClasses 的值会被循环。当你在读取大型文本文件的时候,加上colClasses选项可以可观地提升处理的速度。

quote 用于对有特殊字符的字符串划定界限的字符串。默认值是双引号(")或单引号(’)

skip 读取数据前跳过的行的数目。这个选项在跳过头注释的时候比较有用

stringaAsFactors 一个逻辑变量,标记处字符向量是否需要转化成因子。默认值是TRUE,除非它被colClasses所覆盖。当你在处理大型文本文件的时候,设置成stringsAsFactors=FALSE 可以提升处理速度

text 一个指定文字进行处理的字符串。如果text 被设置了,file 应该被留空。

8、处理数据对象的实用函数(表)

length(object)             显示对象中元素/成分的数量
dim(object)								 显示某个对象的维度
str(object)								 显示某个对象的结构
class(object)							 显示某个对象的类或类型
mode(object)							 显示某个对象的模式
names(object)							 显示某个对象中各成分的名称
c(object,object,…)				 将对象合并入一个向量
cbind(object,object,…)		 按列合并对象
rbind(object,object,…)		 按行合并对象
object										 输出某个对象
head(object)							 列出某个对象的开始部分
tail(object)							 列出某个对象的最后部分
ls()											 显示当前的对象列表
rm(object,object,…)				 删除一个或更多个对象。
newobject <- edit(object)  编辑对象并另存为newobject
fix(object)								 直接编辑对象