基本运算符号 

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. STM32 HAL SPI读取MPU6500的设备ID异常

    1.问题背景 近前,使用STM32F4 HAL库的SPI读取MPU6500出现异常. 现象:读取ID失败,返回0,以为硬件焊接问题,各种排查,最后为了示波器测试方便,把读取ID的函数放到While(1 ...

  2. python 3 递归调用与二分法

    递归调用与二分法 1.递归调用 递归调用:在调用一个函数的过程中,直接或间接地调用了函数本身. 示例: def age(n): if n == 1: return 18 # 结束条件 return a ...

  3. python 常用的字符串方法

    st = ' hello Kitty 'str = 'hello {name} {age}' #print(st.format(name='fadfa'))#常用的字符串方法print(st.coun ...

  4. jquery的几个语法总结和注意事项

    1.关于页面元素的引用 通过jquery的$()引用元素包括通过id.class.元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用do ...

  5. C语言中的位操作(16)--计算二进制数字尾部连续0的数目

    本篇文章介绍计算二进制数字尾部连续0的数目的相关算法,例如:v=(1101000)2,该数尾部连续0的数目=3 方法1:线性时间算法 unsigned int v; // 需要计算的目标整数 int ...

  6. iOS App被拒原因以及解决方案总结。

    Guideline 1.2 - Safety - User Generated Content Your app enables the display of user-generated conte ...

  7. java:Eclipse:Could not create the view:解决办法

    Eclipse:Could not create the view: Plug-in org.eclipse.jdt.ui was unable to load class org.eclipse.j ...

  8. WEB安全之Token浅谈

    Token一般用在两个地方——防止表单重复提交.anti csrf攻击(跨站点请求伪造). 两者在原理上都是通过session token来实现的.当客户端请求页面时,服务器会生成一个随机数Token ...

  9. cf 429B Working out(简单dp)

    B. Working out time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...

  10. C++中的右结合性

    看到网上的说是,右结合 但是还是从左往右算 // 以下说法是从网上看的,不知道对不 a ? b : c ? d : e 如何进行呢? 它的结合律是从右向左,所以它等效于 a ? b : ( c ? d ...