R语言系列:数据的基本运算
基本运算符号
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语言系列:数据的基本运算的更多相关文章
- R语言系列:生成数据
R语言系列:生成数据 (2014-05-04 17:41:57) 转载▼ 标签: r语言 教育 分类: 生物信息 生成规则数据1.使用“:“,如x=1:10,注意该方法既可以递增也可以递减,如y=10 ...
- R语言进行数据预处理wranging
R语言进行数据预处理wranging li_volleyball 2016年3月22日 data wrangling with R packages:tidyr dplyr Ground rules ...
- R语言进行数据预处理
R语言进行数据预处理wranging li_volleyball 2016年3月22日 data wrangling with Rpackages:tidyr dplyr Ground rules l ...
- R语言 我要如何开始R语言_数据分析师
R语言 我要如何开始R语言_数据分析师 我要如何开始R语言? 很多时候,我们的老板跟我们说,这个东西你用R语言去算吧,Oh,My god!什么是R语言?我要怎么开始呢? 其实回答这个问题很简单,首先, ...
- 用R语言提取数据框中日期对应年份(列表转矩阵)
用R语言提取数据框中日期对应年份(列表转矩阵) 在数据处理中常会遇到要对数据框中的时间做聚类处理,如从"%m/%d/%Y"中提取年份. 对应操作为:拆分成列表——列表转矩阵——利用 ...
- R语言读写数据
R语言读写数据 一般做模型的时候,从外部的excel中读入数据,我现在常用的比较多的是read_csv(file) 读入之前先把excel数据转化成.csv格式 同样的把结果输出来的时候用的是writ ...
- 【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语 ...
- 【R语言系列】R语言初识及安装
一.R是什么 R语言是由新西兰奥克兰大学的Ross Ihaka和Robert Gentleman两个人共同发明. 其词法和语法分别源自Schema和S语言. R定义:一个能够自由幼小的用于统计计算和绘 ...
- R语言|数据特征分析
对数据进行质量分析以后,接下来可通过绘制图表.计算某些特征量等手段进行数据的特征分析. 主要通过分布分析.对比分析.统计量分析.周期性分析.贡献度分析.相关性分析等角度进行展开. 2.1 分布分析 分 ...
- R语言的数据输入
既然了解了R语言的基本数据类型,那么如何将庞大的数据送入R语言进行处理呢?送入的数据又是如何在R语言中进行存储的呢?处理这些数据的方法又有那些呢?下面我们一起来探讨一下. 首先,数据输入最直接最直观的 ...
随机推荐
- Oracle结构控制语句
--if语句 if [判断条件] then --条件满足执行的语句 end if; -- if ...else... if [判断条件] then ----条件满足执行的语句 else --不满足条件 ...
- Delphi Stringlist Delimiter如何区分TAB和空格
var st: TStrings; begin st := TStringList.Create; st.StrictDelimiter := True;//这个多少人用过? st.Delimiter ...
- 机器学习(二十四)— 偏差Bias 与方差Variance
1.首先 Error = Bias + Variance Error反映的是整个模型的准确度, Bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度, Variance反映的是模 ...
- Unity3D之Mesh(二)为三角形添加纹理
一.直接開始上步驟 首先繪製一個三角形 創建一個材質,以便後續使用: 1)材質使用的貼圖 2)上代碼 using UnityEngine; using System.Collections; /* = ...
- php 代码中的箭头“ ->”与“=>”是什么意思?
类是一个复杂数据类型,这个类型的数据主要有属性.方法两种东西. 属性其实是一些变量,可以存放数据,存放的数据可以是整数.字符串,也可以是数组,甚至是类. 方法实际上是一些函数,用来完成某些功能. 引用 ...
- javaScript-进阶篇(一)
1.变量 1.必须以字母.下划线或美元符号开头,后面可以跟字母.下划线.美元符号和数字. 2.变量名区分大小写,如:A与a是两个不同变量. 3.不允许使用JavaScript关键字和保留字做变量名. ...
- 洛谷3384&bzoj1036树链剖分
值得注意的是: 一个点的子树是存在一起的...也就是说我们修改子树的时候只用... /********************************************************* ...
- SPOJ375Query on a tree I(树剖+线段树)(询问边)
ιYou are given a tree (an acyclic undirected connected graph) with N nodes, and edges numbered 1, 2, ...
- UILabel的富文本显示选项
UILabel的富文本格式设置 1.实例化方法和使用方法 实例化方法: 使用字符串初始化 - (id)initWithString:(NSString *)str; 例: NSMutableAttri ...
- bzoj 4006 管道连接 —— 斯坦纳树+状压DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4006 用斯坦纳树求出所有关键点的各种连通情况的代价,把这个作为状压(压的是集合选择情况)的初 ...