前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >R语言基础概要

R语言基础概要

作者头像
努力在北京混出人样
发布2019-02-18 15:58:01
发布2019-02-18 15:58:01
1.8K00
代码可运行
举报
文章被收录于专栏:祥子的故事祥子的故事
运行总次数:0
代码可运行

基于学习总结和网上收集!汇总供以后查看学习!

运算符

数学运算:

+,-,*,/,^,%%。(加,减,乘,除,乘方,求余。)

比较运算:

>,<,>=,<=,==,!=。 (大于,小于,大于等于,小于等于,等于,不等于。)

逻辑运算:

&,|,!。(与,或,非。)

初始基本操作

获取工作目录。
代码语言:javascript
代码运行次数:0
运行
复制
> getwd()
设定工作目录
代码语言:javascript
代码运行次数:0
运行
复制
setwd("")
寻求帮助
代码语言:javascript
代码运行次数:0
运行
复制
help(com)
?com
??con
查看实例
代码语言:javascript
代码运行次数:0
运行
复制
example(com)
查看变量格式
代码语言:javascript
代码运行次数:0
运行
复制
args()
列出已安装的包
代码语言:javascript
代码运行次数:0
运行
复制
library()
载入包
代码语言:javascript
代码运行次数:0
运行
复制
library(AER) 
require(AER)
获取包的信息
代码语言:javascript
代码运行次数:0
运行
复制
library(help = ggplot2)
去除载入的包ggplot2
代码语言:javascript
代码运行次数:0
运行
复制
detach(package:ggplot2)
列出已载入的包
代码语言:javascript
代码运行次数:0
运行
复制
search()
列出已载入的包中的所有数据集
代码语言:javascript
代码运行次数:0
运行
复制
data()
列出已安装的包中的所有数据集
代码语言:javascript
代码运行次数:0
运行
复制
data(package = .packages(all.available = TRUE))
列出包ggplot2里的所有数据集
代码语言:javascript
代码运行次数:0
运行
复制
try(data(package = "ggplot2") )
获取数据集的信息
代码语言:javascript
代码运行次数:0
运行
复制
 help(iris)
贴上数据集iris,其作用是可以直接对数据集里的变量进行操作。
代码语言:javascript
代码运行次数:0
运行
复制
attach(Affairs)
上述操作的逆操作
代码语言:javascript
代码运行次数:0
运行
复制
detach(Affairs)

一般的操作

列出所有对象
代码语言:javascript
代码运行次数:0
运行
复制
objects()
ls()
查看对象x的模式:空,数值,字符,逻辑,复数,列表,函数

(NULL,numeric,character,logical,complex,list,function)。

代码语言:javascript
代码运行次数:0
运行
复制
mode(x)
查看对象x的类型:除了mode里列出的几种类型外,还有整数,矩阵,因子,阵列,数据框,时间序列(integer,matrix,factor,array,data frame,ts)等其他类型。mode主要用于区别数据存放的方式,而class是一种更细微的分类方式,比如矩阵,就是一种更“有序”的数据存放方式。此命令比mode常用。
代码语言:javascript
代码运行次数:0
运行
复制
 class(x)
把对象x转为矩阵型
代码语言:javascript
代码运行次数:0
运行
复制
as.matrix(x)
把对象x转为数值型
代码语言:javascript
代码运行次数:0
运行
复制
as.numeric(x)
查看对象x的结构,str是structure的缩写
代码语言:javascript
代码运行次数:0
运行
复制
 str(x)
移除对象x
代码语言:javascript
代码运行次数:0
运行
复制
 rm(x)
移除所有对象
代码语言:javascript
代码运行次数:0
运行
复制
rm(list=ls(all=TRUE))
rm(list=ls())

与向量有关的操作

生成向量
代码语言:javascript
代码运行次数:0
运行
复制
x = c(1,2,4)
#生成元素依次为”a”,”b”,”cd”的字符向量x
代码语言:javascript
代码运行次数:0
运行
复制
 x = c("a","b","cd")
生成”a b cd”的字符x
代码语言:javascript
代码运行次数:0
运行
复制
 x = paste("a","b","cd")
向量x的第a到b个元素
代码语言:javascript
代码运行次数:0
运行
复制
x[a:b]
剔除向量x第i个元素所得的向量
代码语言:javascript
代码运行次数:0
运行
复制
x[-i]
向量x的长度
代码语言:javascript
代码运行次数:0
运行
复制
length(x)
生成以一个n维数值型向量x,第一个元素为a,最后一个元素为b,中间元素依次等距递增。(假设a
代码语言:javascript
代码运行次数:0
运行
复制
x = seq(a, b, length = n)
生成一个数值型向量x,第一个元素为a,其后元素依次加c,直到最后一个元素加c大于b。(假设a
代码语言:javascript
代码运行次数:0
运行
复制
x = seq(a, b, c)
从1开始生成一个递增或递减数值型向量x,最后一个元素绝对值为小于等于|a|的最大整数。
代码语言:javascript
代码运行次数:0
运行
复制
x = seq(a)
生成一个从a递增(减)到b的数值型向量x。(a和b都是整数)
代码语言:javascript
代码运行次数:0
运行
复制
x = a:b
对向量v进行n次复制生成新的向量x
代码语言:javascript
代码运行次数:0
运行
复制
x = rep(v, n)
依次对向量v的每个元素复制n此生成新的向量x
代码语言:javascript
代码运行次数:0
运行
复制
x = rep(v, each = n)
生成一个向量x,其中每个元素是v对应元素的最近整数
代码语言:javascript
代码运行次数:0
运行
复制
x = round(v)
排序
代码语言:javascript
代码运行次数:0
运行
复制
order(x)
获得向量x每个元素大小位置
代码语言:javascript
代码运行次数:0
运行
复制
rank(x)
对向量x从小到大进行排序。降序:sort(x, decreasing = TRUE)。
代码语言:javascript
代码运行次数:0
运行
复制
sort(x)
根据因子f对向量x分类执行函数g
代码语言:javascript
代码运行次数:0
运行
复制
 tapply(x,f,g)
向量x按因子f分类
代码语言:javascript
代码运行次数:0
运行
复制
split(x,f)
返回向量x的差分向量
代码语言:javascript
代码运行次数:0
运行
复制
 diff(x)
返回向量x的累加向量
代码语言:javascript
代码运行次数:0
运行
复制
 cumsum(x)

与矩阵有关的基本操作

生成m行n列的0矩阵
代码语言:javascript
代码运行次数:0
运行
复制
 M = matrix(0,c(m,n))
按行合并矩阵X和Y形成新矩阵M。(X和Y列数需相同)
代码语言:javascript
代码运行次数:0
运行
复制
> M = rbind(X,Y)
按列合并矩阵X和Y形成新矩阵M。(X和Y行数需相同)
代码语言:javascript
代码运行次数:0
运行
复制
> M = cbind(X,Y)
矩阵M的列名
代码语言:javascript
代码运行次数:0
运行
复制
> colnames(M)
矩阵M的行名
代码语言:javascript
代码运行次数:0
运行
复制
> rownames(M)
矩阵M的行数
代码语言:javascript
代码运行次数:0
运行
复制
> nrow(M)
矩阵M的列数
代码语言:javascript
代码运行次数:0
运行
复制
> ncol(M)
矩阵M的对角线元素形成的向量
代码语言:javascript
代码运行次数:0
运行
复制
> diag(M)
生成以向量x为对角线元素,其他位置元素为0的矩阵M
代码语言:javascript
代码运行次数:0
运行
复制
> M = diag(x)
矩阵M的维度
代码语言:javascript
代码运行次数:0
运行
复制
> dim(M)
矩阵M第i行。(数值型)
代码语言:javascript
代码运行次数:0
运行
复制
> M[i,]
矩阵M第i行。(矩阵型)
代码语言:javascript
代码运行次数:0
运行
复制
> M[i,,drop = FALSE]
删除第i行
代码语言:javascript
代码运行次数:0
运行
复制
> M = M[-i,]
矩阵M第j列
代码语言:javascript
代码运行次数:0
运行
复制
> M[,j]
矩阵M第i行j列元素
代码语言:javascript
代码运行次数:0
运行
复制
> M[i,j]
矩阵M的转置。若M为数值型向量,则t(M)为矩阵型行向量
代码语言:javascript
代码运行次数:0
运行
复制
> t(M)
矩阵X乘矩阵Y。若Y是数值型的向量,R会自动判断其为行向量还是列向量。若X与Y为维度匹配的数值型向量,则返回的是矩阵型向量的内积
代码语言:javascript
代码运行次数:0
运行
复制
> X%*%Y
数值型向量x与y的外积(矩阵型)
代码语言:javascript
代码运行次数:0
运行
复制
> x%o%y
矩阵X与矩阵Y的Hadamard乘积。加、减、除、求余的规则和乘相同,即相同位置的元素进行运算
代码语言:javascript
代码运行次数:0
运行
复制
> X*Y
求矩阵M的特征值和特征向量
代码语言:javascript
代码运行次数:0
运行
复制
> eigen(M)$val
> eigen(M)$vec
矩阵M求逆
代码语言:javascript
代码运行次数:0
运行
复制
> solve(M)
求解线性方程Ax=b
代码语言:javascript
代码运行次数:0
运行
复制
> solve(A,b)
对矩阵M的行(dimcode=1)或列(dimcode=2)依次进行函数f操作,f的变量(arguments)方正fargs里
代码语言:javascript
代码运行次数:0
运行
复制
> apply(M, dimcode, f, fargs)

与列表有关的基本操作

建立列表L
代码语言:javascript
代码运行次数:0
运行
复制
> L = list(a = , b = , c = ,...)
返回列表L里的对象a
代码语言:javascript
代码运行次数:0
运行
复制
> L$a
> L[[a]]
去除列表L里的对象a
代码语言:javascript
代码运行次数:0
运行
复制
> L$a = NULL
列出列表L里的对象名
代码语言:javascript
代码运行次数:0
运行
复制
> names(L)
去掉列表L里的对象名
代码语言:javascript
代码运行次数:0
运行
复制
> unname(L)
list apply。功能与apply类似(参考上面的apply),用于列表型数据
代码语言:javascript
代码运行次数:0
运行
复制
> lapply(...)
simplified apply。功能与lapply类似,区别在于函数结果的类型不是列表(list)
代码语言:javascript
代码运行次数:0
运行
复制
> sapply(...)

与数据框有关的基本操作

数据框是一种特殊的列表,所以对列表适用的函数往往对数据框也适用。此外,数据框也有矩阵型数据的特征,所以一些适用于矩阵型数据的函数,不如rbind,cbind,apply等也可以作用在数据框上。
创建数据框Data
代码语言:javascript
代码运行次数:0
运行
复制
> Data = data.frame(...)
编辑数据框Data
代码语言:javascript
代码运行次数:0
运行
复制
> fix(Data)
显示数据框Data的前几行
代码语言:javascript
代码运行次数:0
运行
复制
> head(Data)
列出数据框Data的组成部分
代码语言:javascript
代码运行次数:0
运行
复制
> attribute(Data)
显示数据框Data的变量名
代码语言:javascript
代码运行次数:0
运行
复制
> names(Data)
显示数据框Data的行名
代码语言:javascript
代码运行次数:0
运行
复制
> row.names(Data)
数据框Data中名为name1的变量
代码语言:javascript
代码运行次数:0
运行
复制
> Data$name1
数据框Data中第i个变量形成的数据框
代码语言:javascript
代码运行次数:0
运行
复制
> Data[i]
合并数据框D1和D2,需要D1和D2中有至少一个相同的变量
代码语言:javascript
代码运行次数:0
运行
复制
> merge(D1,D2)

与逻辑型数据有关的基本操作

判断是否对象x是数据框
代码语言:javascript
代码运行次数:0
运行
复制
> is.data.frame(x)
判断是否对象x的每个元素都大于a
代码语言:javascript
代码运行次数:0
运行
复制
> all(x>a)
判断对象x的元素中是否存在一个大于a
代码语言:javascript
代码运行次数:0
运行
复制
> any(x>a)
判断x的每个元素是否大于y的每个元素
代码语言:javascript
代码运行次数:0
运行
复制
> x>y
向量x中大于a的元素组成的新向量
代码语言:javascript
代码运行次数:0
运行
复制
> x[x>a]
向量x中大于a的元素组成的新向量。与上面例子的区别在于若向量元素里有NA,上面的例子会保留在结果中,而subset命令会剔除掉
代码语言:javascript
代码运行次数:0
运行
复制
> subset(x, x>a)
返回向量中大于a的元素的位置
代码语言:javascript
代码运行次数:0
运行
复制
> which(x, x>a)
生成一个与b(逻辑向量)维度相同的数值向量,若b[i]为TRUE,则x[i]为u,反之为v
代码语言:javascript
代码运行次数:0
运行
复制
x = ifelse(b, u, v)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年09月16日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 运算符
    • 数学运算:
    • 比较运算:
    • 逻辑运算:
  • 初始基本操作
    • 获取工作目录。
    • 设定工作目录
    • 寻求帮助
    • 查看实例
    • 查看变量格式
    • 列出已安装的包
    • 载入包
    • 获取包的信息
    • 去除载入的包ggplot2
    • 列出已载入的包
    • 列出已载入的包中的所有数据集
    • 列出已安装的包中的所有数据集
    • 列出包ggplot2里的所有数据集
    • 获取数据集的信息
    • 贴上数据集iris,其作用是可以直接对数据集里的变量进行操作。
    • 上述操作的逆操作
  • 一般的操作
    • 列出所有对象
    • 查看对象x的模式:空,数值,字符,逻辑,复数,列表,函数
    • 查看对象x的类型:除了mode里列出的几种类型外,还有整数,矩阵,因子,阵列,数据框,时间序列(integer,matrix,factor,array,data frame,ts)等其他类型。mode主要用于区别数据存放的方式,而class是一种更细微的分类方式,比如矩阵,就是一种更“有序”的数据存放方式。此命令比mode常用。
    • 把对象x转为矩阵型
    • 把对象x转为数值型
    • 查看对象x的结构,str是structure的缩写
    • 移除对象x
    • 移除所有对象
  • 与向量有关的操作
    • 生成向量
    • #生成元素依次为”a”,”b”,”cd”的字符向量x
    • 生成”a b cd”的字符x
    • 向量x的第a到b个元素
    • 剔除向量x第i个元素所得的向量
    • 向量x的长度
    • 生成以一个n维数值型向量x,第一个元素为a,最后一个元素为b,中间元素依次等距递增。(假设a
    • 生成一个数值型向量x,第一个元素为a,其后元素依次加c,直到最后一个元素加c大于b。(假设a
    • 从1开始生成一个递增或递减数值型向量x,最后一个元素绝对值为小于等于|a|的最大整数。
    • 生成一个从a递增(减)到b的数值型向量x。(a和b都是整数)
    • 对向量v进行n次复制生成新的向量x
    • 依次对向量v的每个元素复制n此生成新的向量x
    • 生成一个向量x,其中每个元素是v对应元素的最近整数
    • 排序
    • 获得向量x每个元素大小位置
    • 对向量x从小到大进行排序。降序:sort(x, decreasing = TRUE)。
    • 根据因子f对向量x分类执行函数g
    • 向量x按因子f分类
    • 返回向量x的差分向量
    • 返回向量x的累加向量
  • 与矩阵有关的基本操作
    • 生成m行n列的0矩阵
    • 按行合并矩阵X和Y形成新矩阵M。(X和Y列数需相同)
    • 按列合并矩阵X和Y形成新矩阵M。(X和Y行数需相同)
    • 矩阵M的列名
    • 矩阵M的行名
    • 矩阵M的行数
    • 矩阵M的列数
    • 矩阵M的对角线元素形成的向量
    • 生成以向量x为对角线元素,其他位置元素为0的矩阵M
    • 矩阵M的维度
    • 矩阵M第i行。(数值型)
    • 矩阵M第i行。(矩阵型)
    • 删除第i行
    • 矩阵M第j列
    • 矩阵M第i行j列元素
    • 矩阵M的转置。若M为数值型向量,则t(M)为矩阵型行向量
    • 矩阵X乘矩阵Y。若Y是数值型的向量,R会自动判断其为行向量还是列向量。若X与Y为维度匹配的数值型向量,则返回的是矩阵型向量的内积
    • 数值型向量x与y的外积(矩阵型)
    • 矩阵X与矩阵Y的Hadamard乘积。加、减、除、求余的规则和乘相同,即相同位置的元素进行运算
    • 求矩阵M的特征值和特征向量
    • 矩阵M求逆
    • 求解线性方程Ax=b
    • 对矩阵M的行(dimcode=1)或列(dimcode=2)依次进行函数f操作,f的变量(arguments)方正fargs里
  • 与列表有关的基本操作
    • 建立列表L
    • 返回列表L里的对象a
    • 去除列表L里的对象a
    • 列出列表L里的对象名
    • 去掉列表L里的对象名
    • list apply。功能与apply类似(参考上面的apply),用于列表型数据
    • simplified apply。功能与lapply类似,区别在于函数结果的类型不是列表(list)
  • 与数据框有关的基本操作
    • 数据框是一种特殊的列表,所以对列表适用的函数往往对数据框也适用。此外,数据框也有矩阵型数据的特征,所以一些适用于矩阵型数据的函数,不如rbind,cbind,apply等也可以作用在数据框上。
    • 创建数据框Data
    • 编辑数据框Data
    • 显示数据框Data的前几行
    • 列出数据框Data的组成部分
    • 显示数据框Data的变量名
    • 显示数据框Data的行名
    • 数据框Data中名为name1的变量
    • 数据框Data中第i个变量形成的数据框
    • 合并数据框D1和D2,需要D1和D2中有至少一个相同的变量
  • 与逻辑型数据有关的基本操作
    • 判断是否对象x是数据框
    • 判断是否对象x的每个元素都大于a
    • 判断对象x的元素中是否存在一个大于a
    • 判断x的每个元素是否大于y的每个元素
    • 向量x中大于a的元素组成的新向量
    • 向量x中大于a的元素组成的新向量。与上面例子的区别在于若向量元素里有NA,上面的例子会保留在结果中,而subset命令会剔除掉
    • 返回向量中大于a的元素的位置
    • 生成一个与b(逻辑向量)维度相同的数值向量,若b[i]为TRUE,则x[i]为u,反之为v
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档