导读
今天是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) 直接编辑对象