一、基本运算符号

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()
> basicStats(x)
x
nobs 1000.000000
NAs 0.000000
Minimum -3.263744
Maximum 3.462402
. Quartile -0.706243
. 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语言数据接口 R语言处理的数据一般从外部导入,因此需要数据接口来读取各种格式化的数据 CSV # 获得data是一个数据帧 data = read.csv("input.csv" ...

  2. R语言数据的导入与导出

    1.R数据的保存与加载 可通过save()函数保存为.Rdata文件,通过load()函数将数据加载到R中. > a <- 1:10 > save(a,file='d://data/ ...

  3. R语言 数据重塑

    R语言数据重塑 R语言中的数据重塑是关于改变数据被组织成行和列的方式. 大多数时间R语言中的数据处理是通过将输入数据作为数据帧来完成的. 很容易从数据帧的行和列中提取数据,但是在某些情况下,我们需要的 ...

  4. R语言数据预处理

    R语言数据预处理 一.日期时间.字符串的处理 日期 Date: 日期类,年与日 POSIXct: 日期时间类,精确到秒,用数字表示 POSIXlt: 日期时间类,精确到秒,用列表表示 Sys.date ...

  5. 最棒的7种R语言数据可视化

    最棒的7种R语言数据可视化 随着数据量不断增加,抛开可视化技术讲故事是不可能的.数据可视化是一门将数字转化为有用知识的艺术. R语言编程提供一套建立可视化和展现数据的内置函数和库,让你学习这门艺术.在 ...

  6. 第六篇:R语言数据可视化之数据分布图(直方图、密度曲线、箱线图、等高线、2D密度图)

    数据分布图简介 中医上讲看病四诊法为:望闻问切.而数据分析师分析数据的过程也有点相似,我们需要望:看看数据长什么样:闻:仔细分析数据是否合理:问:针对前两步工作搜集到的问题与业务方交流:切:结合业务方 ...

  7. 第五篇:R语言数据可视化之散点图

    散点图简介 散点图通常是用来表述两个连续变量之间的关系,图中的每个点表示目标数据集中的每个样本. 同时散点图中常常还会拟合一些直线,以用来表示某些模型. 绘制基本散点图 本例选用如下测试数据集: 绘制 ...

  8. 第四篇:R语言数据可视化之折线图、堆积图、堆积面积图

    折线图简介 折线图通常用来对两个连续变量的依存关系进行可视化,其中横轴很多时候是时间轴. 但横轴也不一定是连续型变量,可以是有序的离散型变量. 绘制基本折线图 本例选用如下测试数据集: 绘制方法是首先 ...

  9. 第三篇:R语言数据可视化之条形图

    条形图简介 数据可视化中,最常用的图非条形图莫属,它主要用来展示不同分类(横轴)下某个数值型变量(纵轴)的取值.其中有两点要重点注意: 1. 条形图横轴上的数据是离散而非连续的.比如想展示两商品的价格 ...

随机推荐

  1. 理解maven项目的pom.xml文件中,<scope>标签的作用——作用域以及依赖传递

    问题介绍: 在maven项目中,最关键的就是pom.xml这个文件,这个文件是用来导入maven项目依赖的jar包以及一些插件等. 在这个文件中导入jar包使用的标签是<dependency&g ...

  2. IT人员如何有效规划自己时间

          中午和任职 DBA 的朋友聊天,他说:"老板老是要我把工作时间填长一点,让整个部门的工作时间比较好看,所以本来做 1 个小时的事要写 3 个小时."但我回答说若这件事情 ...

  3. iterm2 学习笔记

    itrem 笔记 选中即复制,有两种方式. 在新Tab中自动使用前一Tab路径,该怎么用? 系统热键:option+space 自动完成:输入打头几个字母,然后输入command+“;” iterm2 ...

  4. line tension

    <!DOCTYPE html> <html> <head> <title>tension</title> <script type=& ...

  5. 关于C_Sharp集中处理异常

    1.写在前面 “异常意味着什么?”,想必不用对此做多余的解释,我们有理由相信在任何情况下任何应用程序都有可能出现异常,若在程序中没有对异常进行处理,则操作系统会以粗暴的方式处理掉它(弹出错误提示框), ...

  6. MS SQL 分页存储过程

    最近换了家新公司,但是新公司没有使用分页的存储过程.那我就自个写一个往项目上套 (效率怎么样就不怎么清楚没有详细的测试过) CREATE PROCEDURE [dbo].[pro_common_pag ...

  7. 如何: 在 VS中的设计时刻主从表绑定控件到数据库

    这个示例展示了如何在 Visual Studio 2005 的设计时刻,把一个 data-aware 控件 (XtraGrid.XtraPivotGrid.XtraVerticalGrid 等) 绑定 ...

  8. 关于ubuntu下看视频中文字幕乱码的问题

    试了几个播放器都不行.....然后把字幕文件打开后重新保存成utf-8的.... 可以了!!!! 天呐改编码真是一个万能的办法~ 随手记

  9. odoo:开源ERP/安装和初始设置

    1.1 Odoo的结构 Odoo使用Web浏览器来访问Odoo服务,因此你的Odoo服务器可以部署在较远的地方(如另外一个城市),用户的计算机上只需安装谷歌.火狐或 IE9 以上的浏览器,所以Web客 ...

  10. day 60 Django第一天

    jinjia2 : Jinja2是基于python的模板引擎,功能比较类似于于PHP的smarty,J2ee的Freemarker和velocity. 它能完全支持unicode,并具有集成的沙箱执行 ...