一、基本运算符号
1、基本数学计算
+、-、*、/、^、%%(求模)、%/%(整除)
注意:求模运算两边若为小数,则整数和小数部分分别求模。例:5.6%%2.2 2、比较运算>、<、>=、<=、==、!=
3、逻辑运算&、|、!、&&、||、xor
注意:运算符“逻辑与”和“逻辑或”存在两种形式,“&”和“|”作用在对象中的每一个元素上并且返回和比较次数相等长度的逻辑值;“&&”和“||”只作用在对象的第一个元素上。xor为异或,两值不等为真,两值相等为假。例:xor(0, 1)
4、常见运算函数abs、sqrt、exp、log、log10、log2sin、cos、tan、asin、acos、atan、atan2choose(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/84359quantile(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中匹配的位置,若无返回NAall、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) xnobs 1000.000000NAs 0.000000Minimum -3.263744Maximum 3.4624021. Quartile -0.7062433. Quartile 0.652421Mean -0.043407Median 0.003339Sum -43.406637SE Mean 0.031843LCL Mean -0.105894UCL Mean 0.019081Variance 1.014007Stdev 1.006979Skewness -0.029121Kurtosis -0.179738