前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >「R」数值与字符处理函数

「R」数值与字符处理函数

作者头像
王诗翔呀
发布2020-07-03 09:41:17
1K0
发布2020-07-03 09:41:17
举报
文章被收录于专栏:优雅R

数学函数

函数

描述

abs(x)

绝对值

sqrt(x)

平方根

ceiling(x)

不小于x的最小整数

floor(x)

不大于x的最大整数

trunc(x)

向0的方向截取的x中的整数部分

round(x, digits=n)

将x舍入为指定为的小数

signif(x, digits=n)

将x舍入为指定位的有效数字位

cos(x) sin(x) tan(x)

余弦、正弦、正切

acos(x) asin(x) atan(x)

反余弦、反正弦、反正切

cosh(x) sinh(x) tanh(x)

双曲余弦、双曲正弦、双曲正切

acosh(x) asinh(x) atanh(x)

反双曲余弦、反双曲正弦、反双曲正切

log(x, base=n) log(x) log10(x)

对x取以n为底的对数,log()为自然对数、log10()为常用对数、

exp(x)

指数函数

统计函数

函数

描述

mean(x)

平均数

median(x)

中位数

sd(x)

标准差

var(x)

方差

mad(x)

绝对中位差

quantile(x, probs)

求分位数

range(x)

求值域

sum(x)

求和

diff(x, lag=n)

滞后差分

min(x)

求最小值

max(x)

求最大值

scale(x, center = TRUE, scale = TRUE)

为数据对象x按列进行中心化或标准化

注意:默认情况下,函数scale()对矩阵或数据框的指定列进行均值为0、标准差为1的标准化。要对每一列进行任意均值和标准差的标准化,可以使用如下的代码:

newdata <- scale(mydata)*SD +M

其中,M是想要的均值,SD为想要的标准差。

要对指定列而不是整个矩阵或数据框进行标准化,可以使用这样的代码:

newdata <- transform(mydata, myvar = scale(myvar)*10 + 50)

此句将变量myvar标准化为均值50、标准差为10的变量。

概率函数

在R中,概率函数形如:[dpqr] distribution_abbreviation()

其中第一个字母表示其所指分布的某一方面

d = 密度函数

p = 分布函数

q = 分位数函数

r = 生成随机数

常见的概率函数列于下表

分布名称

缩写

分布名称

缩写

Beta分布

beta

Logistic分布

logis

二项分布

binom

多项分布

multinon

柯西分布

cauchy

负二项分布

nbinom

(非中心)卡方分布

chisq

正态分布

norm

指数分布

exp

泊松分布

pois

F分布

f

Wilcoxon符号秩分布

signrank

Gamma分布

gamma

t分布

t

几何分布

geom

均匀分布

unif

超几何分布

hyper

Weibull分布

weibull

对数正态分布

lnom

Wilcoxon秩和分布

wilcox

举一个正态分布的例子:

  • 在区间[-3, 3]上绘制标准正态曲线 代码: x <- pretty(c(-3,3), 30) y <- dnorm(x) plot(x, y, type = "l", xlab = "Normal Deviate", ylab = "Density", yaxs = "i")
  • 位于z=1.96左侧的标准正态曲线下方面积是多少? pnorm(1.96) [1] 0.9750021
  • 均值为500,标准差为100的正态分布的0.9分位点值是多少? qnorm(.9, mean=500, sd=100) [1] 628.1552
  • 生成50个均值为50,标准差为10的正态随机数 rnorm(50, mean=50, sd=10) [1] 49.38745 52.51430 56.93963 51.22944 63.67348 51.36679 54.98808 [8] 53.05569 55.97482 60.39947 45.51604 67.12161 47.07014 52.59261 [15] 42.03015 72.63337 44.46301 57.21510 45.11340 67.84524 49.45923 [22] 53.29985 42.05868 70.21170 39.38098 60.91972 40.28650 53.27463 [29] 52.63329 68.45204 49.54816 48.41146 53.91802 68.76061 51.95143 [36] 59.77664 48.85114 63.89268 58.22510 63.03717 46.58257 51.63818 [43] 33.21591 51.87442 45.71147 43.30351 45.20912 37.52851 48.64193 [50] 64.95938

设定随机种子

可以通过函数set.seed()显式地指定生成随机数时所用的种子,让结果可以重现。

代码语言:javascript
复制
> set.seed(1234)
> runif(5)
[1] 0.1137034 0.6222994 0.6092747 0.6233794 0.8609154
> set.seed(1234)
> runif(5)
[1] 0.1137034 0.6222994 0.6092747 0.6233794 0.8609154

通过手动设定种子,就可以重现你的结果。这种能力有助于我们创建在未来取用的,以及可以与他人分享的示例。

生成多元正态数据

当你需要获取来自给定均值向量和协方差矩阵的多元正态分布的数据时,MASS包中的mvrnorm()函数可以让这个问题变得容易。其调用格式:

mvrnorm(n, mean, sigma)

其中n是你想要的样本大小,mean是均值向量,而sigma是方差——协方差矩阵(或相关矩阵)。

字符处理函数

函数

描述

nchar(x)

计算x的字符数量

substr(x, start, stop)

提取或替换一个字符向量中的子串

grep(pattern, x ignore, case=FALSE, fixed=FALSE)

在x中搜索某种模式

sub(pattern, replacement, x, ignore.case=FALSE, fixed=FALSE)

在x中搜索pattern,并以文本replacement替代

strsplit(x, split, fixed=FALSE)

在split出分割字符向量x中的元素

paste(…, sep=" ")

连接字符串,分隔符为sep

toupper()

大写转换

tolower()

小写转换

其他实用函数

函数

描述

length(x)

对象x的长度

seq(from, to, by)

生成一个序列

rep(x, n)

将x重复n次

cut(x, n)

将连续型变量x分割为有着n个水平的因子

pretty(x, n)

创建美观的分割点。绘图中常用

cat(…, file="myfile", append=FALSE)

连接…中的对象,并其输出到屏幕或文件中

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 优雅R 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数学函数
  • 统计函数
  • 概率函数
    • 设定随机种子
      • 生成多元正态数据
      • 字符处理函数
      • 其他实用函数
      相关产品与服务
      对象存储
      对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档