R语言基础汇总

Python010

R语言基础汇总,第1张

%>%是管道符的意思,把左边的输出(不包括 <- 之前的)当成右边的输入。

都可以shift + alt + 上下 :快速复制粘贴

alt + 上下 :移动行

ctrl + alt + 上下 :多重光标

首先选中要注释掉的行,然后按Ctrl+shift+C ,这样就注释掉了。

sessionInfo()

.libPaths()

一篇关于包的博客

library(installr)

updateR()

COS中文论坛 统计之都旗下的论坛网站(d.cosx.org),它和其主站(cosx.org)一 起,是一个致力于推广与应用统计学知识的网站和社区。

1 help("t.test")

2 ?t.test

3 help.search("t.test")

4 apropos("t.test")

5 RGui>Help>Html help

6 查看R包pdf手册

getwd() 显示工作目录

setwd() 设定工作目录

list.files() 列出目录或文件夹下的文件

demo( ) 显示R的基本程序包

example( ) 显示在线帮助的例子

example(barplot)

可以把若干行命令保存在一个文本文件(比如Eg3.R)中,然 后用source函数来运行整个文件: source("E:/R demo/Chapter1-Eg3.R")

sum, mean, var, sd, min, max, range, median, IQR(四分位间距)等为统计量, sort,order,rank与排序有关, 其它还有ave,fivenum,mad,quantile, stem等

-1:1/0 当中/是优先级靠后的操作。相当于c(-1,0,1)/0

names(df) <- c("male", "female", "unknown")

对于矩阵,我们可以使用属性rownames和colnames来访问行名和列名。

我们也可以先定义矩阵x然后再为dimnames(x)赋值:

数值型数据 :1.2345e30

复数常量就用3.5-2.1i

缺失值:NA(Not Available)

是否含有缺失值:

NaN表示不确定的数

NaN属于NA的一种

NA不是NaN

注意下面例子的比较 :

assign("x1", c(1, 2))

sort(x)返回x的元素从小到大排序的结果向量

x=c(2,10,6,8,4,5)sort(x) [1] 2 4 5 6 8 10  order(x)返回使得x从小到大排列的元素下标向量(x[order(x)]等效于sort(x))。

此外numeric(n)可以产生一个长度为n的零向量(numeric(n)是一个 很好用的外部存储器)

paste函数用来把它的自变量连成一个字符串,中间用空格分开

Re( )计算实部,Im( )计算虚部, Mod( ) 计算复数模,Arg( )计算复数幅角。

v为一个向量,取值在-length(x)到-1之间,表示扣除相应 位置的元素。例如:

可以用x[]的写法:

R的对象有两个基本的属性:类型属性(mode)和长度属性(length)。

长度为零的向量 numeric( ) 或者 numeric(0) character( ) 或者 character(0)

数组(array): 带多个下标的类型相同的元素的集合,

函数matrix():用于构造二维数组,即矩阵

函数factor( )用来把一个向量编码成为一个因子。

可以自行指定各离散取值水平(levels),不指定时由x的不同值来求得。

• labels可以用来指定各水平的标签,不指定时用各离散取值的对应字符串。

• exclude参数用来指定要转换为缺失值(NA)的元素值集合。

• ordered取真值时表示因子水平(Levels)是有次序的

因子可以用来作为另外的同长度变量的分类变量,使用tapply() 函数可以完成分类统计

nchar()这个函数简单,统计向量中每个元素的字符个数

tolower()和toupper()可以进行大小写字母的转换

chartr()把字符串里的元素,按要求进行转换

拆分字符串用strsplit()函数,strsplit得到的结果是列表,后面的处理要调用列表

其任何一个语句都可以看成是一个表达式。

表达式之间以分号分隔或用换行分隔。

表达式可以续行,只要前一行不是完整表达式,则下一行为上一行的继续。

线性回归模型:

lm()函数的返回值叫做模型拟合结果对象,本质上是一个列表, 有model 、coefficients、residuals等成员。lm()的结果显示十分 简单,为了获得更多的拟合信息,可以使用对lm类对象有特 殊操作的通用函数,这些函数包括:

add1 coef effects kappa predict residuals alias deviance family labels print summary anova drop1 formula plot proj

加号+或 者减号-,表示在模型中加入一项或去掉一项,第一项前面如果是加号可以 省略

在非交互运行(程序)中应使用print()来输出。

• digits参数指定每个数输出的有效数字位数;

• quote 参数指定字符串输出时是否带两边的撇号;

• print.gap参数指定矩阵或数组输出时列之间的间距

也用来输出,但它可以把多个参数连接起来再输出(具有paste() 的功能)。例如:

读取文件:

strsplit()得到的结果是 列表。

grep() grepl()

sub()和gsub()

但严格地说R语言 没有字符串替换的函数,因为R语言不管什么操作对参数都是传值不传址,区别如下:

用substr()和substring() 可以通过位置进行字符串拆分或提取,两者的参数设置基本相同:

strtrim() 函数可以用于将字符串修剪到特定的显示宽度通过位置进 行字符串拆分或提取:

由于日期内部是用double存储的天数,所以是可以相减的。

weekdays ( )取日期对象所处的周几;

months ( )取日期对象的月份;

quarters ( )取日期对象的季度;

其任何一个语句都可以看成是一个表达式。

表达式之间以分号分隔或用换行分隔。

表达式可以续行,只要前一行不是完整表达式,则下一行为上一行的继续。

quantile(x, probs=seq(0,1,0.25), na.rm=FALSE, names=TRUE, type=7, …)

probs给出相应的百分位数,默认值是0,0.25,0.5,0.75,1;na.rm是处 理缺失数据的,na.rm=TRUE时,NA和NaN将从数据中移走,向量取值中 若有NA或NaN,要添加这一参数,否则会出错;names若为TRUE,返回 值当中有names这个属性"type是取值1-9的整数,选择了九种分位数算法 (具体算法见帮助文件)中的一种。

数据的分布主要考察分布函数(p), 密度函数(d), 分位数函数(q)及产生随机数(r)

以正态分布为例:

hist(x, breaks="Sturges", freq=NULL, probability=!freq,… )

break规定了直方图的组距(必须覆盖数据的范围);freq是逻辑变量,TRUE是频率直方图, FALSE是密度直方图;probability和freq相反,TRUE是密度直方图,FALSE是频率直方图

其形式为 coplot(y ~ x | z),其中x 和y是数值型向量,z是同长度的因子。 对z的每一水平,绘制相应组的x和y的散点图

R缺省的图形边空常常太大,以至于有时图形窗口较小时边空占了整个图形的很大一部分。

R可以在同一页面开若干个按行、列排列的窗格,在每个窗格中可以作一 幅图。每个图有自己的边空,而所有图的外面可以包一个“外边空”。

一页多图用 mfrow 参数或 mfcol 参数规定,如

函数 mtext 用来在外边空加文字标注。其用法为

在多图环境中还可以用 mfg 参数来直接跳到某一个窗格,比如

可以不使用多图环境而直接在页面中的任意位置产生一个窗格来绘图,参数为 fig ,如:

先用as.factor()转化成因子。因为levels()函数里面必须是因子。

dat$Genre没有转化成因子形式,as.factor(dat$Genre)就可以了

该消息表明文件的最后一行不以行尾 (EOL) 字符结尾(换行符 ( \n ) 或回车 + 换行符 ( \r\n ))。此消息的初衷是警告您该文件可能不完整;大多数数据文件都有一个 EOL 字符作为文件中的最后一个字符。

这是因为R读取文件的时候,是一整段character,所以它只会返回1,适当给他分一下段。

用 file_test() 可以判断是一个目录还是文件:

创建目录使用 dir.create()

当创建多级目录时,令recursive = TRUE即可。

创建空文件使用 file.create()

有两个函数可以使用 file.remove 和 unlink ,其中unlink函数使用同删除目录操作是一样的。

1、向量是用于存储数值型,字符型或者逻辑型数据的一维数组。执行组合功能的函数为c(),可以用来创建向量。向量可根据位置进行索引,需要用[]。 2、矩阵是一个二维数组,每个元素都拥有相同的模式,可通过函数matrix()创建矩阵。 3、数组是一个可以在两个以上维度存储数据的数据对象。例如,如果创建尺寸(2,3,4)的数组,那么就是创建4个矩形矩阵每个2行3列。数组只能存储数据类型。 4、矩阵和数组一样都只能包含一种数据类型,当有多种模式的数据时,使用数据框就更为方便。数据框可以用函数data.frame () 创建。 5、$  被用来选取一个给定数据框中的某个特定变量。 6、attach()绑定数据集,detach()解除数据集。 7、with:attach,detach最好在单独的数据框内使用,在多个同名对象最好不要使用,函数with(),可以再具有多个同名对象的数据框内使用,但是必须加入花括号{},这样就无须担心名称冲突了,但是它也有局限性,赋值仅在此函数的括号内生效。 8、列表是一些对象的有序集合。 9,、数据导入 read.table(),其中header = T,代表第一行为变量名称,不作为数据,header = F相反。sep代表数据分隔符,txt为"\t",csv为","。 10、table函数,用 table() 函数统计因子各水平的出现次数(称为频数或频率)。 >sex = c("女","女","女","男","男") >table(sex) >sex   男 女   2 3 求众数 >aim = table(sex)[table(sex)==max(table(sex))] >aim   女    3 > max(table(sex)) [1] 3 > table(sex)==max(table(sex))   sex   男    女   FALSE TRUE 11、 无尺度网络: 是指在某一复杂的 系统 中,大部分节点只有少数几个连结,而某些节点却拥有与其他节点的大量连结。这些具有大量连结的节点称为“集散节点”,所拥有的连结可能高达数百、数千甚至数百万。这一特性说明该网络是无尺度的,因此,凡具有这一特性的网络都是无尺度网络。 12、options(stringsAsFactors = F) #在调用as.data.frame的时,将stringsAsFactors设置为FALSE可以避免character类型自动转化为factor类型。 13、class():查看数据结构:vector、matrix、array、dataframe、list。 14、str():作用用英语来表示是:check classification of viriables,一般用于检查数据框当中有哪些数据。 15、mode() :查看数据元素类型。 16、typeof() :查看数据元素类型,基本等同于mode(),比mode()更为详细。 17、example():假设有一个函数foo,example("foo"),函数foo的使用示例。 18、apropos():列出名称中含有foo的所有可用函数。apropos("foo",mode="function")。 19、data():列出当前已加载包中所含的所有可用示例数据集。 20、ls():列出当前工作空间中的对象。 21、rm():移除(删除)一个或多个对象。 22、history(#):显示最近使用过的#个命令(默认值为25)。 23、options():显示或设置当前选项。有一个收藏文件有介绍options的功能。 24、boxplot():生成盒型图。 25、sum():计算和。sum(x,na.rm = TRUE)。 26、median():计算中位数。 27、cbind():以列结合变量。cbind(x,y,z)。 28、rbind():以行结合变量。 29、vector():以向量形式结合数据。vector(length = 10)。 30、rep():以矩阵形式结合数据。rep(c(1,,2,3),each = 10) 31、seq():生成一个有序的数列。seq(1,10)。 32、dim():矩阵或者cbind输出的维数。dim(Mydata)。 33、scan():从ascii文件中读取数据。scan(file = "test.txt")。 34、write.table():把一个变量写入到ascii文件。write.table(Z,file = "test.txt")。 35、order():确定数据的顺序。order(x)。 36、merge():合并两个数据框。merge(x,y,by = "ID")。 37、str():显示一个对象的内部结构。str(Mydata)。 38、factor():定义变量作为因子。factor(x)。 39、tapply():tapply(X = Veg$R,INDEX = Veg$Transect,FUN = mean).tapply函数根据第二个变量(Transect)的不同水平对第一变量(R)进行了求平均值运算。还可以求sd,var,length等操作。R语言初学者指南P75详细介绍了这个函数。 40、下一页介绍了sapply和lapply。 41、summary():计算基本信息。 42、table():计算列联表,统计因子各水平的出现次数(频数或频率)。table(x,y)。 43、plot():y对x的图形。pch形状,col颜色。 44、par():par(mfrow = c(2,2),mar = c(3,3,2,1)) mfrow生成一个具有4个面板的图形窗口。mar选项指定每个图形周围空白的大小,底部、左侧、顶部、右侧。 45、paste():将变量连接成字符串。paste("a","b",sep = "")。 46、log(): log = "x",log = "y",log = "xy",生成对数轴。 47、%in%: a<-c(1,3,13,1443,43,43,4,34,3,4,3) b<-c(1,13,11,1313,434,1) a%in%b # 返回内容#  [1] TRUE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE # 取反操作 !(a%in%b) 48、sort()函数是对向量进行从小到大的排序 rank()函数返回的是对向量中每个数值对应的秩 order()函数返回的值表示位置,依次对应的是向量的最小值、次小值、第三小值……最大值等(位置索引) arrange()函数(需加载dplyr包)针对数据框,返回基于某列排序后的数据框,方便多重依据排序。 49、subset(): df <- data.frame( a = 1:10, b = 2:11, c = 3:12 )df <- subset(df, select = c(a,c)) #选取列a和c df <- subset(df, select = -c(a,c) ) #去除列a和c