只是想知道是否有一个函数可以多次堆叠相同的数据帧。下面是一个例子,我将相同的数据帧堆叠在一起三次。
df <- mtcars
df <- rbind(df,df,df) # here stack same df three times
是否有一个函数可以将相同的数据帧堆叠多次,而您只需要指定要复制的次数。我可以写一个循环来做这件事,但是有没有这样的函数
df <- stack(df , 3) # does a function like this exist?
非常感谢任何帮助。由于
在我所知道的包中没有,但您可以在一行代码中完成此操作,或者创建自定义函数。
自定义函数:
stack_df <- function(dataframe, ntimes) {
as.data.frame(sapply(dataframe, rep.int, times = ntimes))
}
stack_df(dataframe = mtcars, ntimes = 3)
一个衬套:
as.data.frame(sapply(mtcars, rep.int, times = 3))
我们可以用replicate
stack_df <- function(data, n)
{
do.call(rbind, replicate(n, data, simplify = FALSE))
}
测试
out <- stack_df(mtcars, 3)
> dim(out)
[1] 96 11