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语言中进行存储的呢?处理这些数据的方法又有那些呢?下面我们一起来探讨一下. 首先,数据输入最直接最直观的 ...
随机推荐
- hd acm1061
Problem Description Given a positive integer N, you should output the most right digit of N^N. Inp ...
- In a Web Application and Mobile (hybrid), how to know which this platform running?
needed depending on the platform to change the CSS to suit the size of the font. for example the DbG ...
- 关于mysql使用索引的一个问题
mysql一直号称是免维护的,但是我发现它往往连最表基本索引都不能自动维护,情景如下: 1.我用mysqldump导出一个大表longformh; 2.用mysql.exe导入到一个新库中: 3.查看 ...
- Ubuntu忘记用户密码解决方法--Authentication token manipulation error
1.重启系统,按住shift键进入grub菜单: 2.选择recovery mode恢复模式: 3.在recovery menu中选择root drop to root shell prompt: 4 ...
- Spark- SparkStreaming可更新状态的实例
Producer package zx.zx.sparkkafka import java.util.Properties import kafka.producer.{KeyedMessage, P ...
- css3 多列布局使用
css3的出现,解决了不少前端的问题,比如动画,圆角等: 这里总结一下css3 的多列布局: w3c上给出了很多属性: 我们一般用到column-count.column-gap.column-wid ...
- 利用simhash计算文本相似度
摘自:http://www.programcreek.com/java-api-examples/index.php?source_dir=textmining-master/src/com/gta/ ...
- Bootstrap-菜单,导航,按钮
1.下拉菜单(基本用法) 在Bootstrap框架中的下拉菜单组件是一个独立的组件,根据不同的版本,它对应的文件: ☑ LESS版本:对应的源码文件为 dropdowns.less ☑ Sass版 ...
- log4j报错ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only err ...
- linux命令学习笔记(14):head 命令
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显 示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾. .命令格式: hea ...