-
帮助与基础
- help(topic) 查看关于topic的帮助文档
- ?topic 同上
- help.search("topic") 搜索帮助文档
- apropos("topic") 返回在搜索路径下包含(部分)关键词“topic”的所有对象名称
- help.start() HTML形式的帮助
- demo() R功能演示
- example(f) 运行在线帮助中的示例
- str(a) 显示R对象的内在属性或简要说明对象
- summary(a) 给出a的概要,通常是一个一般性统计概要,且它对不同属性的a有不同的操作方式
- ls() 显示搜索路径下的对象,也可按指定条件搜索
- ls.str() str()搜索路径下的每个变量与其属性
- dir() 显示当前目录下的文件
- list.files() 同上
- getwd() 获得工作路径
- setwd() 设置工作路径
- methods(a) 显示a的“S3 methods”
- methods(classs=class(a)) 列表所有可以解决属于对象类的方法
- options() 设置或检验全局参数,常用参数有:width,digits,error
- install.packages(pkg)安装pkg包
- update.packages() 自动比对包版本,并询问更新
- library(pkg) 加载pkg包
- require(pkg) 同上
- library(help=pkg) 展示包pkg的信息
- attach(x) 将x指向R的搜索路径,x可以是一个列表,数据框,或者是由save创建的R data file。使用search() 来显示搜索路径
- detach(x) attach的逆过程
- assign(x, value) 将value赋值给x,即"<-"
-
quit() 退出当前R会话(q()或Ctrl_z)
-
输入与输出
- load() 加载由save命令得到的资料集
- data(x) 加载指定的数据集
- edit() 调用文本编辑器修改R对象
- fix(x) fix调用edit修改x
- data.entry(x) 电子数据表形式的录入编辑器
- scan(x) 从控制台或文件中读取数据为向量或列表
- read.table(file) 读取表格形式的文件并将其创建成数据框,默认分隔符sep=“”为任意空白,使用header=TRUE读取第一行作为列标题,使用as.is=TRUE防止字符向量变为factors,使用comment.char=""防止“#”被解释为注释,使用skip=n在读取数据前跳过n行
- read.csv("filename",header=TRUE) 同上,但默认设置为读取csv文件
- read.delim("filename",header=TRUE) 同上,默认设置为读取tab分割文件
- read.fwf(file, widths, header=F, sep="\t", as.is=F) 以fixed width formatted形式读取数据至数据框,widths是整数向量,用于设置调整宽度字段
- save(file, ...) 以不分平台的二进制保存指定的对象
- save.image(file) 保存所有的对象
- dump("x", "...") 将对象x保存在“..."里
- cat(..., file="", sep="") 强制转化为字符后打印对象的赋值,sep为对象赋值间的分隔符号
- print(a, ...) 显示a的赋值,他对不同的对象可以有不同的表达方式
- format(x, ...) 格式化,更好地显示R对象
- write.table(x,file="",row.names=T, col.names=T,sep="") 把x转化为数据框并写入文件中,如果quote为TRUE,字符和因子列就会被“所包围,sep是字符分隔符,eol为尾行分隔符,na为缺失值字符串,使用col.names=NA增加列标题以便于和表格输入一致
-
sink(file) 输入到文件file,直到输入命令sink()
-
数据创建
- c(...) 创建一个向量
- from:to 产生一个序列
- seq(from, to, by=) 产生一个序列,by=指定序列间距
- rep(x, times, each=) 重复x times次,使用each=来指定元素x重复的次数
- data.frame(...) 创建一个数据库
- list(...) 创建一个由变量组成的列表,变量可被命名或不被命名
- matrix(x, nrow=, ncol=) 创建一个矩阵
- array(x, dim=) 产生一个由x组成的数组
- factor(x, levels=) 把向量x转换为因子
- gl(n, k, length=n*k, labels=1:n) 通过指定水平方式产生水平因子,k为水平的个数,n为重复的次数
- rbind(...) 以行的形式组合矩阵或数据框
-
cbind(...) 以列的形式组合矩阵或数据框
-
数据分割和选取
-
向量索引
- x[n] 选取向量x中的第n个元素
- x[-n] 除去第n个元素外的x
- x[1:n] 前n个元素
- x[-(1:n)] 第n+1至最后的元素
- x[c(1,2,4)] 指定第1,2,4个元素
- x[x>3] 所有大于3的元素
- x[x>3 & x<6] 获取区间(3,6)的元素
- x[x %in% c("a,""and","the")] 选取给定组中的元素
-
矩阵索引
- x[i,j] 下标为(i,j)的元素
- x[i, ] 第i行
- x[ ,j] 第j列
- x[ ,c(1,3)] 第1和3列
- x["name", ] 名为“name“的列
-
数据库索引
- x[["name"]] 列名为”name”的列
- x$name 同上
-
列表索引
- x[n] 列表显示元素n
- x[[n]] 列表的第n个元素
- x[["name"]] 名为“name”的元素
-
x$name 同上
-
-
变量类型转换
-
as.numeric(x),as.character(x),as.logical(x),as.array(x),as.matrix(),as.data.frame()等
-
-
变量信息
- is.na(x),is.null(x),is.numeric(x),is.charactoer(x),is.matrix(x),is.data.frame(x),is.array(x)等
- length(x) 获取x中元素的个数
- dim(x) 获取或重新设置对象x的维数
- dimnames(x) 重新设置对象x的名称
- nrow(x) 返回行的个数
- ncol(x) 返回列的个数
- class(x) 获取或设置x的类
- unclass(x) 删除x的类
- names(x) 查看或设置对象x的名称
- unname(x) 删除x的名称
- unlist(x) 将列表x转换为向量
- attr(x, which) 得到或设置x的属性类型which
-
attributes(obj) 得到或设置obj的属性列表
-
数据选择和操作
- which.max(x) 返回x中最大元素的索引
- which.min(x) 返回x中最小元素的索引
- rev(x) 颠倒x中所有的元素
- sort(x) 升序排列x中的元素,降序排列使用rev(sort(x))
- cut(x, breaks) 将x中的元素分割成几段,breaks指定分割的段数或分割点向量
- match(x, y) 返回一个和x相同长度且和y中元素相等的向量,不等的元素返回NA
- which(x == a) 如果比较操作为真,则返回向量x的索引
- sign(x) 判断变量是否大于0,大于返回“1”,小于返回“-1”,等于返回“0”
- na.omit(x) 去除缺失值NA, 如果x为矩阵或数据框,则去除相关行
- unique(x) 如果x为向量或数据框,返回唯一值
- duplicated(x) 返回向量或数据框x 重复元素的逻辑值
- table(x) 返回一个由x中不同值个数组成的表格
- sample(x, size) 不放回的随机在向量x中抽取size个元素,选项replace=T允许放回抽取
- subset(x, ...) 根据条件选取子集
-
prop.table(x , margin=) 根据margin使用分数表示表格,无margin时,所有元素和为1
-
数学
- max(x) 返回x中的最大值
- min(x) 返回x中的最小值
- mean(x) 返回x的平均值
- median(x) 返回x的中位数
- sum(x) x中元素的加和
- abs(x) 返回x的绝对值
- range(x) 返回x中最小值至最大值的范围
- quantile(x, probs=) 计算样本分位数,默认为0, 0.25, 0.5, 0.75, 1
- IQR(x) 返回数据中间50%的区间
- var(x) 计算x的方差
- sd(x) 计算x的标准差
- sqrt(x) 计算x的平方根
- cor(x) 计算矩阵或数据框x的相关阵
- var(x, y) 计算x和y之间的协方差
- cor(x, y) 计算x和y之间的线性相关系数或相关阵
- round(x, n) 返回x的约数,精确到n位
- log(x, base) 计算x以base为底的对数
- scale(x) 如果x是一个矩阵,则中心化和标准化数据,默认center=T, scale=T;若只标准化,则使用center=F,若只中心化,则使用scale=F。
- cumsum(x) 返回x的累加和
- union(x, y) 取x和y的并集
- intersect(x, y) 取x和y的交集
- setdiff(x, y) 取x和y的差集
-
filter(x, filter) 根据特定条件进行过滤
-
矩阵
- t(x) 转置
- diag(x) 对角阵
- eigen(x) 计算矩阵的特征根和特征向量
- dist(x) 计算矩阵x行间的距离
- solve(x) 计算矩阵的逆
- rowsum(x)或rowSums(x) 求矩阵对象的行加和
- colsum(x) 或colSums(x) 求矩阵对象的列加和
- rowMeans(x) 求行平均值
-
colMeans(x) 求列平均值
-
高级数据处理
- apply(x, index, fun=) 根据数组下标index应用函数fun返回向量,数组或列表的值
- lapply(x, fun=) 应用fun函数到列表x的每个元素
- tapply(x, index, fun=) 根据x的索引index对不完全的数列应用函数fun
- sapply(x, fun=) 同lapply,比之更好
- by(data, index, fun=) 应用函数fun处理数据框data中由index定义的子集
- merge(a, b) 根据共有的列或行名把两个数据框合并
- aggregate(x, by, fun=) 将数据框x分割为几个子集,且计算各个子集的概要统计,并以合适的方式返回结果,by是分组元素列表
- reshape(x, ...) 对“wide”和“long“格式数据框进项转换
- expression(expr) 创建或检验对象是否为“表达(expression)”形式
-
eval(expr) 在指定的环境下计算R表达式
-
字符
- paste(...) 转化为字符后连接向量,sep=为分隔符
- substr(x, start, end) 提取字符向量的子字段
- strsplit(x, split) 根据split的位置分割x
- grep(pattern, x) 根据pattern模式进行匹配和替换
- gsub(pattern, replacement, x) 全局替换满足正则表达式模式的字段
- nchar(x) 返回字符的个数
- tolower(x) 将字母转换为小写
- toupper(x) 将字母转换为大写
- match(x, table) 返回table中匹配x元素位置组成的向量
-
x %in% table 同上