简单的数学运算
可以在控制台进行简单的数学运算。
1 + 2
10 - 3
4 * 3
5 ** 2
5 ^ 2
向量的构建和运算
(1) 利用c()
函数构建更长的向量,函数传入的值必须是同一个类型的。
c(0,1,2,3,4,5,6)
c("Hello","World")
c(TRUE,FALSE,FALSE)
利用start:end
生成包含start到end之间所有整数的向量。
(2)向量之间的运算是广播式的。如果两个函数的长度不同,会对较短的向量进行重复拼接。
注释
#注释
函数
大部分函数的形式都是:f(argument1,argument2)
。
exp(1)
cos(3.141596)
log2(1)
log(x = 64,base = 4)
变量
向量赋值
赋值符有<-
和=
。
x <- 1
y <- 2
z <- c(x,y)
向量索引
(1)取向量b中的第七个元素:b[7]
(2)取第1到第6个元素:b[1:6]
(3)取向量b中对3取模,值为0的元素:b[b %% 3 == 0]
。通过一个逻辑向量来指定要取哪些值。
(4)取第1、6、11个元素:b[c(1,6,11)]
函数赋值
函数可以作为一个对象赋值给某个符号。
f <- function(x,y) {c(x+1,y+1)}
数据结构简介
数组array
(1) 用array()
构建数组。dim
参数需要一个行列维度值的向量,也可以用nrow
和ncol
指定数组的行列数。
array(1:12,dim = c(3,4))
array(1:12,nrow = 3,ncol = 4)
(2)通过下标来取其中的元素:array[row,col,dim]
取第1,2行和第1,2列的元素:array[1:2,1:2]
取第一行的元素:array[1,]
取第一列的元素:array[,1]
引用不连续的行:array[c(1,3),]
列表list
列表里的元素可以是不同的数据类型。可以对列表中的每一个元素命名,可以通过元素名或者位置来取值。
e <- list(thing = "hat",size = "8.25")
通过元素名来取值:e$Name
通过位置来取值:e[[1]]
数据框data frame
(1)数据框可以包含多个具有相同长度的向量作为元素,每个元素相当于一个列,都具有列名。
teams = c('PHI','NYM','FLA','ATL','WSN')
w = c(92,89,94,72,59)
l = c(70,73,77,90,102)
nleast = data.frame(teams,w,l)
(2)使用
$
操作符通过列名来对数据框中的元素进行取值。
nleast$w
(3)可以在数据框中搜寻某个特定的值。
要寻找FLA的负常数 nleast$l [nleast$teams == "FLA"]
对象和类
(1)使用class()
函数查看每个对象的类型。
类型有:character、numeric、data.frame、function、list
(2)作用于不同类的方法可以拥有相同的名字,被称为泛型函数。
17 + 6
as.Date("2009-09-08") + 7
模型和公式
假设要对变量y建立一个线性模型,通过变量x1、x2、…、xn来预测它的值。
可以用y~x1 + x2 +...+xn
的形式来展现这种关系。
(1)使用lm
函数来估算线性模型的参数
Frame.lm = lm(formula = y~x,data = Frame)
(2)使用summary
函数来得到更多信息。
图表
R中会内置数据可视化的包,例如graphics、grid和lattice。
(1)利用hist()
绘制直方图。
hist(vector,breaks )
breaks:设置直方图的组数。
(2)利用stripchart()
绘制带状图。
stripchart(vector,pch,method = "jitter")
pch:设置点性状。
method = "jitter":使每个点更清楚显示出来。
(3)cars数据集,对speed和distance的关系进行作图。
plot(cars,xlab = "speed(mph)",ylab = "Stopping distance(tt)")
获得帮助
(1)获取关于某个函数的帮助信息:help(Function)
或 ?Function
(2)获取某个操作符的帮助信息,需要将操作符用反引号括起来。
(3)获取帮助文件中的例子:example(Function)
(4)不记得函数具体名称,搜索相关主题:??Name
(5)获取某个包的帮助文档:library(help = PackageName)
(6)获取某些Bioconductor包的帮助文档:vignette(PackageName)