基本运算符号 

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. hd acm1017

    Problem Description Given two integers n and m, count the number of pairs of integers (a,b) such tha ...

  2. [java]final关键字、finally关键字与finalize()方法

    final关键字: final关键字通常指的是“无法改变的”,使用“无法改变”这样修饰可能出于两个原因:设计或者效率. final可以修饰变量.方法和类. 一.final变量 一个既是static又是 ...

  3. 什么是tmpfs

    什么是tmpfs tmpfs是Linux/Unix系统上的一种基于内存的文件系统.tmpfs可以使用您的内存或swap分区来存储文件. 实现原理:基于VM子系统 tmpfs是基于Linux的虚拟内存管 ...

  4. 编码,charset,乱码,unicode,utf-8与net简单释义

    1.文件分为文本文件和二进制文件﹐不过本质都一样﹐都是些01. 2.计算机存储设备存储的0或1﹐称为计算机的一个二进制位(bit). 3.二进制文件的0和1有专门的应用程序来读﹐所以它们没有什么乱不乱 ...

  5. Linux课程---9、安装RPM包(RPM的全称是什么)

    Linux课程---9.安装RPM包(RPM的全称是什么) 一.总结 一句话总结: redhat package management 1.在Packages中查找和php相关的文件如何查找? ls ...

  6. 一个很有参考意义的unity博客

    http://blog.csdn.net/lyh916/article/details/45133101

  7. mysql连接超时问题

    前几天使用个脚本不停的查看redis队列中的事件.如果有则把事件取出来,然后进行一些数据库操作. 后来发现,每天的第一次有事件时都会到导致,找不到数据. 后来定位到问题,是mysql在连接长时间无活动 ...

  8. [基本操作]线段树分治和动态dp

    不知道为什么要把这两个没什么关系的算法放到一起写...可能是都很黑科技? 1.线段树分治 例题:bzoj4026 二分图 给你一个图,资瓷加一条边,删一条边,询问当前图是不是二分图 如果用 LCT 的 ...

  9. ACM学习历程—UESTC 1217 The Battle of Chibi(递推 && 树状数组)(2015CCPC C)

    题目链接:http://acm.uestc.edu.cn/#/problem/show/1217 题目大意就是求一个序列里面长度为m的递增子序列的个数. 首先可以列出一个递推式p(len, i) =  ...

  10. bzoj 4500: 矩阵 差分约束系统

    题目: Description 有一个n*m的矩阵,初始每个格子的权值都为0,可以对矩阵执行两种操作: 选择一行, 该行每个格子的权值加1或减1. 选择一列, 该列每个格子的权值加1或减1. 现在有K ...