从数据框中复制元素

时间:2013-10-07 14:31:51

标签: r duplicates dataframe rep

我有一个如下所示的数据框:

x <- as.data.frame(matrix(data = c("a", "b", "c", 1, 2, 3), 
                      ncol = 2,
                      nrow = 3,
                      byrow = FALSE))

> x
  V1 V2
1 a  1
2 b  2
3 c  3

假设我想复制元素x [1,2]四次,元素x [2,2]六次,元素x [3,2]五次,并将它们全部保存在一个新的数据框中。

> v
  V1
  1
  1
  1
  1
  2
  2
  ...

我知道我可以使用rep来做到这一点,但我想知道是否有更舒适的方式。

2 个答案:

答案 0 :(得分:0)

你可以使用像

这样的东西
TheseRows <- c(1, 2, 3)
NManyReps <- c(4, 6, 5)
x[, 2][ do.call(rep, list(TheseRows, NManyReps)) ]

答案 1 :(得分:0)

这是另一种选择

data.frame(v=rep(as.numeric(x[,2]), c(4,6,5)))

如果您想保留这些因素,请忽略as.numeric(·)

data.frame(v=rep(x[,2], c(4,6,5)))