rep()函数中的each参数可以设置为一个向量。

39

我有一个关于序列和each的快速问题:

vect1 <- c(4, 5, 10, 3, 1)

我想用这个向量进行复制,使得第一个数字被复制4次,第二个数字被复制5次,第三个数字被复制10次,第四个数字被复制3次,第五个数字被复制1次。

rep(1:5, each = vect1) 
 [1] 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5
Warning message:
In rep(1:5, each = vect1) : first element used of 'each' argument

rep(1:5, each = c(4, 5, 10, 3, 1)) 

    [1] 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5
    Warning message:
    In rep(1:5, each = c(4, 5, 10, 3, 1)) :
      first element used of 'each' argument

我知道这是对each方法的误用。


2
rep(vect1, vect1) 给它一个很好的展示。 - Rich Scriven
to_rep <- 1:5; unlist(sapply(to_rep, function(x) rep(x, vect1[which(to_rep == x)]))) to_rep <- 1:5; unlist(sapply(to_rep, function(x) rep(x, vect1[which(to_rep == x)]))) - user42909
1个回答

27
rep(1:5, vect1)

如果您对如何在R中使用函数有疑问,请尝试

?function

其中"function"是您想了解的任何函数。从?rep中,您会读到:

'times'是一个整数向量,如果长度为length(x),则给出(非负)重复每个元素的次数,如果长度为1,则重复整个向量。负值或NA值是错误的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接