base包—seq函数

描述

序列生成

生成规律的序列。Seq是带有默认方法的标准泛型。int是一个原语,可以更快,但有一些限制。
Seq_along和seq_len是两种常见情况下的非常快的原语。

用法

seq(...)

## Default S3 method:
seq(from = 1, to = 1, by = ((to - from)/(length.out - 1)),
    length.out = NULL, along.with = NULL, ...)

seq.int(from, to, by, length.out, along.with, ...)

seq_along(along.with)
seq_len(length.out)

参数


...:传递给方法或从方法传递的参数。   

from, to:序列的起始值和(最大)结束值。长度为1,除非仅仅 from作为未命名参数提供。

by:Number:序列的增量。    

length.out:序列的期望长度。一个非负数,对于seq和seq.int来说,如果是小数,则四舍五入。 (希望分成的份数)   

along.with:从这个参数的长度中取长度。    

细节

数值输入都应该是有限的(也就是说,不是无限的NaN或NA)。

对seq和seq.int的未命名参数的解释不是标准的,建议在编程时总是对参数进行命名。

seq是通用的,这里只描述默认方法。请注意,它对第一个参数的类进行分派,而不考虑参数名称。如果只使用一个参数来调用它,就会产生意想不到的后果。在这种情况下,使用seq_along更好。

int是一个内部泛型,它根据第一个提供的参数的类(在参数匹配之前)分派“seq”的方法。

典型的用法是:

seq (from, to)
seq (from, to, by= )
seq (from, to, length.out= )
seq (along.with= )
seq (from)
seq (length.out= )

第一种形式生成序列from, from+/-1,…, to(与from:to相同)。

第二种形式产生from, from+by,…,直到序列值小于或等于。用相反的符号指定to - from和by是错误的。请注意,计算的最终值可以超过to以允许舍入误差,但会被截断为to。(刚好超过abs的1e-10倍。)

第三个生成一个length.out序列。从from到to间隔的值。(length.out通常缩写为length或len, seq_len要快得多。)

第四种形式生成整数序列1,2,…、长度(along.with)。(along.with通常缩写为along, seq_along快得多。)

第五种形式产生序列1,2,…,长度(from)(如参数along.with被指定) 除非参数被解释为1:from时长度为1的数值(为了兼容S,即使seq(0)也是如此)。最好使用seq_along或seq_len(除非严格的S兼容性是必要的)。

最后的形式生成整数序列1,2,…,length.out。除非length.out = 0,当它生成整数(0)时。

非常小的序列(从-到的顺序为10^{-14}乘以末端较大的序列)将从返回。

对于seq(仅限),最多可以将from、to和by中的两个作为提供长度的复值提供。或指定更一般地,seq的默认方法将使用Math、Ops和Summary组泛型的方法来处理类对象。

Seq.int、seq_along和seq_len是原语。

例子

seq (0, 1, length.out = 11)
seq (stats::rnorm(20)) # effectively 'along'
seq (1, 9, by = 2)     # matches 'end'
seq (1, 9, by = pi)    # stays below 'end'
seq (1, 6, by = 3)
seq (1.575, 5.125, by = 0.05)
seq (17) # same as 1:17, or even better seq_len(17)

length.out:序列的期望长度。(即期望分成的份数)

seq(1,10,length.out=6)把1-10分成6等份(最终一共展现7个数字,每个数字间的距离是一样的),也就是9/6=1.5(距离)

along.with:从这个参数的长度中取长度。(即期望最后展示的长度) 

seq(1,10,along.with=c(1,2,3,4,5,6))比如这里c(1,2,3,4,5,6)长度为6,这里就是把1-10分成5等份(最终一共展现6个数字,每个数字间的距离是一样的),也就是9/5=1.8(距离)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值