【R笔记】R语言函数总结
R语言与数据挖掘:公式;数据;方法
R语言特征
- 对大小写敏感
- 通常,数字,字母,. 和 _都是允许的(在一些国家还包括重音字母)。不过,一个命名必须以 . 或者字母开头,并且如果以 . 开头,第二个字符不允许是数字。
- 基本命令要么是表达式(expressions)要么就是 赋值(assignments)。
- 命令可以被 (;)隔开,或者另起一行。
- 基本命令可以通过大括弧({和}) 放在一起构成一个复合表达式(compound expression)。
- 一行中,从井号(#)开始到句子收尾之间的语句就是是注释。
- R是动态类型、强类型的语言。
- R的基本数据类型有数值型(numeric)、字符型(character)、复数型(complex)和逻辑型(logical),对象类型有向量、因子、数组、矩阵、数据框、列表、时间序列。
基础指令
q()——退出R程序
tab——自动补全
ctrl+L——清空console
ESC——中断当前计算
调试查错
browser()
和 debug()——设置断点进行,运行到此可以进行浏览查看(具体调试看browser()帮助文档(c,n,Q))
stop('your message here.')——输入参数不正确时,停止程序执行
cat()——查看变量?
帮助
help(solve)
和 ?solve 等同
??solve——检索所有与solve相关的信息
help("[[") 对于特殊含义字符,加上双引号或者单引号变成字符串,也适用于有语法涵义的关键字 if,for 和 function
help(package="rpart")——查看某个包
help.start()——得到html格式帮助
help.search()——允许以任何方式(话题)搜索帮助文档
example(topic)——查看某个帮助主题示例
apropos("keyword")——查找关键词keyword相关的函数
RSiteSearch("onlinekey", restrict=fuction)——用来搜索邮件列表文档、R手册和R帮助页面中的关键词或短语(互联网)RSiteSearch('neural networks')
- 准备
文件目录设置
setwd(<dir>)——设置工作文件目录
getwd()——获取当前工作文件目录
list.files()——查看当前文件目录中的文件
加载资源
search()——通过search()函数,可以查看到R启动时默认加载7个核心包。
基础函数:数学计算函数,统计计算函数,日期函数,包加载函数,数据处理函数,函数操作函数,图形设备函数
setRepositpries()——选择软件库(CRAN,Bioconductor,R-Forge),寻找安装包的方法另看《【R笔记】寻找R的安装包》
(.packages())——列出当前包
(.packages(all.available=TRUE))——列出有效包
install.packages(“<package>”)——安装包
library()和require()——加载R包(package)至工作空间
data()——列出可以被获取到的存在的数据集(base包的数据集)
data(<datasets>,package=“nls”)——将nls包的datasets加载到数据库中
批处理文件和结果重定向
source("commands.R")——执行commands.R (存放批处理命令的)脚本文件。
cat(<Rcommond>,file="")——可以把R命令输出至外部文件,然后调用source函数进行批处理
do.call(<funcname>,<pars>)——调用函数,第一个参数<funcnames>指示调用函数字符串名称,第二个参数包含调用所需参数的一个列表<pars>
sink("record.lis")——把后续的输出结果从控制台重定向到外部文件 record.lis 中
sink()——把后续代码输出重新恢复到终端上展示
attach(<datafame>)——将数据框<datafame>中的变量链接到内存中,便于数据调用
detach()——对应attach(<datafame>),取消变量的链接,
detach()里没有参数!
注:attach()
和detach()均是在默认变量搜索路径表中由前向后找到第一个符合变量名称,因此之前若存在重名变量,有可能会出现问题!!!
输入输出(读入输出数据、文件)
assign("x",c(1,2,3))
和 x <- c(1,2,3)
和 c(1,2,3)->x ——向量赋值
read.table("infantry.txt", sep="\t", header=TRUE)——seq属性用其它字符分割,比如文本文件用空格(tab)分隔,header设置为文件中已经存在表头名称
read.csv("targets.csv")——读入csv(Comma Seperated Values)文件,属性被逗号分割
read.csv(url("<link>"))——read.csv()
和 url()的合体,读存在网上的数据
x <- scan(file="")——手动输入数据,同时scan可以指定输入变量的数据类型,适合大数据文件
scan("data.dat", what = list("", 0, 0))——what指定变量类型列表
readLines('http://en.wikipedia.org/wiki/Main_Page',n=10)——读取文本文件,将文档转为以行为单位存放的list格式,比如读取读取wikipedia的主页html文件的前十行
write.table(Data, file="file.txt", row.names = FALSE, quote=FALSE)——输出,quote为FALSE去掉字符串类型的双引号,write.table(stasum, "stasum.csv",row.names = FALSE,col.name=FALSE,sep=",",append=TRUE)
write.csv(data,file="foo.csv",row.names=FALSE)——写成csv格式,row.names=FALSE去掉行号
print()——打印
save.image("./data.RData")——把原本在计算机内存中(工作空间)活动的数据转存到硬盘中。
load("./RData")——加载目录中的*.RData,把文档-词项矩阵从磁盘加载到内存中
数据查看
- 通用对象
R是一种基于对象(Object)的语言,对象具有很多属性(Attribute),其中一种重要的属性就是类(Class),最基本的类包括了数值(numeric)、逻辑(logical)、字符(character)、列表(list),符合类包括矩阵(matrix)、数组(array)、因子(factor)、数据框(dataframe)。
class(<object>)
和 data.class(object)——查看对象object的类或类型
unclass()——消除对象object的类
- 基本数据类型
mode()——查看基本数据类型
length()——查看长度
as.<数据类型>——改变对象的数据类型
- 特殊属性
attributes(<object>)——查看对象object各种属性组成的列表
attr(<object>,“name”)——存取对象object的名为name的属性
- 混合类型
逻辑类型+数值类型=数值类型
逻辑类型+字符类型=字符类型
数值类型+字符类型=字符类型
ls()
和 objects()——查看当前工作空间中存在的对象(变量)
rm(list=ls())——删除工作空间的所有对象
methods(x)——查看x函数的源码,有些自带函数输入名称x可以直接看到,有一些需要调用methods方法才能查看函数x的源码,出现多重名,输入对应名称即可
str()——查看数据(框)中的数据总体信息(比如样本个数、变量个数、属性变量名称、类型)
nrow(dataframe)——查看数据集行数
NROW(vector)——查看向量的行数,等于length(x)
head(dataframe)——查看数据集前6行数据
tail(dataframe)——查看数据集尾6行数据
- 向量特征
逻辑向量运算:
TRUE,FALSE——全部大写
isTRUE(x)——判断x为TRUE
*|,&,!——或且非,注意是
单个,
不是&&!
ANY,ALL——任意,全部
数组和矩阵
train$var
train$new[train$var == NA] <- 1
Data[is.na(Data)] <- 0——数据框多维变量中给NA值赋值为0
apply(A,Margin,FUN,...)——A为矩阵,Margin设定待处理的维数,为1是横排(行),为2是竖排(列)做运算,Fun是运算函数
sweep(x,2,apply(x,MARGIN=1,mean),FUN)——对数组或者矩阵进行运算。 MARGIN=1表示行,2表示列;STATS统计量,如apply(x,MARGIN=1,mean),FUN函数运算默认为减法,“/”除法
y.vector<-with(data,get(yval))——表示在data数据框中读取列名称为yval的向量。
with(<data>,<colname|func>)——提取数据框中的某些参数做运算,对于数据框运算很方便
绘图
plot()——绘制图像
plot(<vecter_horizontal>, <vector_vertical>, pch=as.integer(<factors>),col,xlab,ylab)——用factors区分图像点的类型pch(圆的,三角,叉),col是颜色类别,xlab或者ylab对应横纵轴标题
legend(<location="topright">,legend=<vector_labelname>,pch=1:3,cex=1,col)——图例,<location>是位置(比如右上),<vector_labelname>图例类别标签名,pch是图例对应标签的类别id(向量),<cex>调整字体比例大小,颜色设置,legend("topright", levels(<factors>), pch=1:length(levels(factors)))
text(X,Y,labels=c(1,2,3),adj=1.2)——添加标注,X,Y是对应坐标的向量,labels是标记值,adj调整标注位置
abline(h = <int>,lty=2)——低级绘图添加一条水平线h或者是回归模型
直线,垂线v;lty为2表示绘制虚线
abline(a,b)——画一条y=a+bx的
直线
points(x,y)————低级绘图,画个点,坐标为向量x,y
lines(x,y)——低级绘图,画一条线,坐标为向量x,y
axis(side=1,at=seq(from=0.7,by=1.2,length.out=7),labels=c(...))——绘制坐标轴,低级绘图,side为2是纵坐标
barchart()——lattice包预先要对数据汇总
barplot(<vector>)——绘制柱状图,vector可增加名称。也可以绘制直方图,和hist()均分数据不太一样,需要用table()统计各个子分段下样本数量后在画图。
mosaicplot(x~y,main,color=T,xlab,ylab)——柱形对应关系图
contour(<matrix>)——创建等高线
persp(<matrix>,expand=0.2)——创建3D图,expand扩展值设置为0.2,否则为全屏扩展
image(volcano)——加载栅格(矩阵)图像
par(mfrow=c(1,2),oma,mar)——mfrow设置图形输出窗口为1行2列,添加car包?oma是所有图像距离边框