rep
位于 base
包(package)。 说明
rep
复制 x
中的值。它是一个通用函数,(内部)默认方法在此处说明。
rep.int
和 rep_len
是两种常见情况的更快简化版本。在内部,它们是通用的,因此可以为它们定义方法(参见InternalMethods)。
用法
rep(x, ...)
rep.int(x, times)
rep_len(x, length.out)
参数
x |
向量(包括 |
... |
要传递给其他方法或从其他方法传递的更多参数。对于内部默认方法,这些可以包括:
|
times, length.out |
请参阅上面的 |
细节
默认行为就好像调用是
rep(x, times = 1, length.out = NA, each = 1)
。通常只指定一个附加参数,但如果使用其他两个参数之一指定了 each
,则首先执行其复制,然后执行 times
或 length.out
所暗示的复制。
如果 times
由单个整数组成,则结果由重复多次的整个输入组成。如果 times
是与 x
长度相同的向量(经过 each
复制后),则结果由 x[1]
重复 times[1]
次、x[2]
重复 times[2]
次等组成。
length.out
可以代替 times
,在这种情况下, x
会根据创建此长度的向量所需的次数重复。如果两者都给出,则 length.out
优先,times
被忽略。
times
的非整数值将被截断为零。如果 times
是计算量,则谨慎添加小模糊或使用 round
。类似地,each
。
如果 x
的长度为零,并且提供了 length.out
并且为正数,则使用提取规则填充这些值,即通过原子向量的适当类的 NA
(原始向量为 0
)和NULL
列表。
值
与 x
类型相同的对象。
rep.int
和 rep_len
不返回任何属性(如果返回因子,则类除外)。
如果 x
有名称,则 rep
的默认方法会给出结果名称(几乎总是包含重复项),但不保留其他属性。
注意
函数 rep.int
是一个简单的情况,它作为单独的函数提供,部分是为了 S 兼容性,部分是为了速度(特别是当可以删除名称时)。此后,rep
的性能得到了改进,但当 x
有名称时,rep.int
的速度仍然至少是原来的两倍。
名称rep.int
long 先于使rep
通用。
函数 rep
是一个原语,但参数名称的(部分)匹配与普通函数一样执行。
由于历史原因,rep
(仅)适用于NULL
:即使length.out
为正,结果也始终为NULL
。
尽管从未有过记录,但这些函数始终适用于 expression 向量。
例子
rep(1:4, 2)
rep(1:4, each = 2) # not the same.
rep(1:4, c(2,2,2,2)) # same as second.
rep(1:4, c(2,1,2,1))
rep(1:4, each = 2, length.out = 4) # first 4 only.
rep(1:4, each = 2, length.out = 10) # 8 integers plus two recycled 1's.
rep(1:4, each = 2, times = 3) # length 24, 3 complete replications
rep(1, 40*(1-.8)) # length 7 on most platforms
rep(1, 40*(1-.8)+1e-7) # better
## replicate a list
fred <- list(happy = 1:10, name = "squash")
rep(fred, 5)
# date-time objects
x <- .leap.seconds[1:3]
rep(x, 2)
rep(as.POSIXlt(x), rep(2, 3))
## named factor
x <- factor(LETTERS[1:4]); names(x) <- letters[1:4]
x
rep(x, 2)
rep(x, each = 2)
rep.int(x, 2) # no names
rep_len(x, 10)
参考
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
也可以看看
相关用法
- R replace 替换向量中的值
- R readRenviron 从文件设置环境变量
- R remove 从指定环境中删除对象
- R readChar 与连接之间传输字符串
- R readRDS 单个对象的序列化接口
- R reg.finalizer 对象的最终确定
- R rev 反转元素
- R regmatches 提取或替换匹配的子字符串
- R readline 从终端读取一行
- R readBin 与连接之间传输二进制数据
- R readLines 从连接读取文本行
- R rank 样本排名
- R rapply 递归地将函数应用于列表
- R raw 原始向量
- R rawConnection 原始连接
- R row 行索引
- R row.names 获取和设置 DataFrame 的行名称
- R rowsum 根据分组变量给出矩阵或 DataFrame 的列和
- R range 值范围
- R rle 游程长度编码
- R round.POSIXt 舍入/截断日期时间对象
- R rawConversion 与(位/打包)原始向量之间的转换
- R file.path 构造文件路径
- R grep 模式匹配和替换
- R getwd 获取或设置工作目录
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Replicate Elements of Vectors and Lists。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。