基本运算符号 

1、基本数学计算 

+、-、*、/、^、%%(求模)、%/%(整除) 

注意:求模运算两边若为小数,则整数和小数部分分别求模。例:5.6%%2.2 

2、比较运算 

>、<、>=、<=、==、!= 

3、&、|、!、&&、||、xor 

注意:运算符“逻辑与”和“逻辑或”存在两种形式,“&”和“|”作用在对象中的每一个元素上并且返回和比较次数相等长度的逻辑值;“&&”和“||”只作用在对象的第一个元素上。

xor为异或,两值不等为真,两值相等为假。例:xor(0, 1)

4、常见运算函数

abs、sqrt、exp、log、log10、log2

sin、cos、tan、asin、acos、atan、atan2

choose(n, k)    #n个里面取k个的组合数

计算n!的方法:factorial(n); gamma(n+1); prod(1:n)

sign(x)    #返回x的正负号

R中计算的两个特点

1、向量化(逐个元素循环操作) 

例:y=1:10; y+1; sqrt(y);

2、两个不等长的变量循环填充

例:x=1:3; y=1:10; z=x+y

注意:当两个变量长度不是整倍数的关系,会有警告信息。

向量常用统计函数

max、min、range(返回最小、最大两个值)、sum、prod(连乘Π)、mean、median(中位数)、var、sd、length、rev(取逆序)

which.max、which.min:返回最大、最小值的下标

which:返回符合条件元素的下标

    x=matrix(1:20,4,byrow=T);

    which(x > 8)    #返回一个向量

    which(x > 8, arr.ind=T)    #返回一个指示行列号的矩阵

diff:差分,即x[i+1]-x[i]

cumsum:计算x[i]=sum(x[1]:x[i])

cumprod:计算x[i]=prod(x[1]:x[i])

sort、rank、order:参见http://my.oschina.net/explore/blog/84359

quantile(x, probs=)    #默认probs为c(0, .25, .5, .75, 1)

    例:x=0:100; quantile(x); quantile(x, probs=seq(0, 1, 0.1)

IQR:四分位数间距

summary:给出常见统计量,包括四分位数、最小、最大和中位数

weighted.mean(x, y)    #加权平均,等同于sum(x*y)/sum(y)

cov、cor:两向量的协方差和线性相关系数

    #可使用参数 method = c("pearson", "kendall", "spearman"))指定计算方法,默认第一种。

    #方法名称可使用首字母缩写

table(x)    #当x为定性数据时,统计x的频数

table(x,y,z)    #输出由x、y、z三个定性变量组成的列联表

ftable(x,y,z)    #以多重嵌套二维表的形式输出有x、y、z三个定性变量组成的列联表

nchar(x)    #x为字符串,求x的字符个数

    例:x=c("china", "english", "amercia"); nchar(x);

match(x,y)    #再y中逐个查找x,若有返回在y中匹配的位置,若无返回NA

all、any    #分别报告各元素是否全部或至少一个为TRUE

矩阵常用函数

t:转置(行列互换)

cov、cor:协方差阵和协相关系数阵

diag:提取对角元素,输出为一个向量

rbind、cbind:按行合并、按列合并,可合并若干向量,也可合并若干矩阵

*:逐元乘积

%*%:代数乘积

crossprod:交叉乘积

det:矩阵的行列式值

eigen:特征根和特征向量

qr:QR分解

scale:对矩阵进行中心化和标准化

集合运算

    union(x,y)    #求并集

    intersect(x,y)    #求交集

    setdiff(x,y)    #求属于x而不属于y的所有元素

    setequal(x,y)    #判断x与y是否相等

    a %in% y    #判断a是否为y中的元素

    choose(n, k)    #n个里面取k个的组合数

    combn(x,n)    #x中的元素每次取n个的所有组合

        combn(x,n,f)     #将这些组合用于指定函数f

向量化(apply)

apply(x, MARGIN, FUN)    #MARGIN为1则逐行运算,2则逐列运算。FUN为所用函数。

    当x为数组时,MARGIN可大于2,或使用c(1,2)表示按行列计算。

lapply、sapply:用于列表,前者返回列表,后者返回矩阵或向量

附:峰度和偏度的计算

R默认不提供函数计算这两个值。

如果需要计算,可以自编公式或者使用fBasics包。

加载fBasics包,可使用以下命令进行计算:

    skewness(x)    #偏度

    kurtosis(x)    #峰度

     basicStates(x)    #提供16个统计量

> x=rnorm(1000)

> basicStats(x)

                      x

nobs        1000.000000

NAs            0.000000

Minimum       -3.263744

Maximum        3.462402

1. Quartile   -0.706243

3. Quartile    0.652421

Mean          -0.043407

Median         0.003339

Sum          -43.406637

SE Mean        0.031843

LCL Mean      -0.105894

UCL Mean       0.019081

Variance       1.014007

Stdev          1.006979

Skewness      -0.029121

Kurtosis      -0.179738

R语言系列:数据的基本运算的更多相关文章

  1. R语言系列:生成数据

    R语言系列:生成数据 (2014-05-04 17:41:57) 转载▼ 标签: r语言 教育 分类: 生物信息 生成规则数据1.使用“:“,如x=1:10,注意该方法既可以递增也可以递减,如y=10 ...

  2. R语言进行数据预处理wranging

    R语言进行数据预处理wranging li_volleyball 2016年3月22日 data wrangling with R packages:tidyr dplyr Ground rules ...

  3. R语言进行数据预处理

    R语言进行数据预处理wranging li_volleyball 2016年3月22日 data wrangling with Rpackages:tidyr dplyr Ground rules l ...

  4. R语言 我要如何开始R语言_数据分析师

    R语言 我要如何开始R语言_数据分析师 我要如何开始R语言? 很多时候,我们的老板跟我们说,这个东西你用R语言去算吧,Oh,My god!什么是R语言?我要怎么开始呢? 其实回答这个问题很简单,首先, ...

  5. 用R语言提取数据框中日期对应年份(列表转矩阵)

    用R语言提取数据框中日期对应年份(列表转矩阵) 在数据处理中常会遇到要对数据框中的时间做聚类处理,如从"%m/%d/%Y"中提取年份. 对应操作为:拆分成列表——列表转矩阵——利用 ...

  6. R语言读写数据

    R语言读写数据 一般做模型的时候,从外部的excel中读入数据,我现在常用的比较多的是read_csv(file) 读入之前先把excel数据转化成.csv格式 同样的把结果输出来的时候用的是writ ...

  7. 【R语言系列】作图入门示例一

    假设有如下数据,我们使用plot函数作图 月龄 体重 月龄 体重  1 4.4 9 7.3 3 5.3 3 6.0 5 7.2 9 10.4 2 5.2 12 10.2 11 8.5 3 6.1 R语 ...

  8. 【R语言系列】R语言初识及安装

    一.R是什么 R语言是由新西兰奥克兰大学的Ross Ihaka和Robert Gentleman两个人共同发明. 其词法和语法分别源自Schema和S语言. R定义:一个能够自由幼小的用于统计计算和绘 ...

  9. R语言|数据特征分析

    对数据进行质量分析以后,接下来可通过绘制图表.计算某些特征量等手段进行数据的特征分析. 主要通过分布分析.对比分析.统计量分析.周期性分析.贡献度分析.相关性分析等角度进行展开. 2.1 分布分析 分 ...

  10. R语言的数据输入

    既然了解了R语言的基本数据类型,那么如何将庞大的数据送入R语言进行处理呢?送入的数据又是如何在R语言中进行存储的呢?处理这些数据的方法又有那些呢?下面我们一起来探讨一下. 首先,数据输入最直接最直观的 ...

随机推荐

  1. es6对象内函数的两种写法

    es6对象内函数一般有两种写法: var person1 = { name: "p1", sayThis() { console.log(this); } }; var perso ...

  2. ansible普通用户su切换问题

    在现网应用中,安全加固后的主机是不允许直接以root用户登陆的,而很多命令又需要root用户来执行,在不改造现网的情况下.希望通过一个普通用户先登陆,再su切到root执行.而且每台主机的普通用户和r ...

  3. Android系统OTA升级包制作【转】

    本文转载自:http://blog.csdn.net/dingfengnupt88/article/details/52882788 Android系统升级分为整包升级和差分包升级,整包升级就是将系统 ...

  4. POJ 1183 反正切函数的应用

    H - 反正切函数的应用 Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Submit ...

  5. Array对象(一)

    Array是JavaScript中的一个事先定义好的对象(也可以称作一个类),可以直接使用. 创建Array对象: var array = new Array(); 创建指定元素个数的Array对象: ...

  6. SSAS——基础

    一.Analysis Services Analysis Services是用于决策支持和BI解决方案的数据引擎.它提供报表和客户端中使用的分析数据. 它可在多用途数据模型中创建高性能查询结构,业务逻 ...

  7. gethub的安装

    下载地址: windows的下载地址 https://gitforwindows.org/ 一.安装 win下的安装注意要点: 1.环境变量 2.文件结束符如何处理(windows下/r/n,linu ...

  8. AMD模块定义规范

    AMD 即Asynchronous Module Definition,中文名是“异步模块定义”的意思.它是一个在浏览器端模块化开发的规范,服务器端的规范是CommonJS.   模块将被异步加载,模 ...

  9. jmeter-接口的依赖

    接口的依赖 接口2要用到接口1中返回的数据 大致思路:建立接口1和接口2,把接口1中的yangli字段传递给接口中的入参date里 步骤如下: 1.接口1 2\新建一个HTTP请求,命名为老黄历接口2 ...

  10. Java微信开发_Exception_03_非微信官方网页-invalid signature

    由于natapp免费隧道的域名是系统随机分配的,老是在变.故昨天又换了内网映射工具,分别换了ngrok和花生壳,然而在做JSSDK网页开发时,按了微信的view菜单按钮进行页面跳转时,微信官方提示“非 ...