我有一个如下所示的数据框:
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
来做到这一点,但我想知道是否有更舒适的方式。
答案 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)))