我有一个只有 1 行的数据框。为此,我开始使用 rbind 添加行
df #mydataframe with only one row
for (i in 1:20000)
{
df<- rbind(df, newrow)
}
随着我的成长,这变得非常缓慢。这是为什么?我怎样才能使这种类型的代码更快?
你在地狱第二圈 http://www.burns-stat.com/pages/Tutor/R_inferno.pdf,即未能预分配数据结构。
在 R 中以这种方式增长对象是一件非常非常糟糕的事情。要么预先分配,要么插入:
df <- data.frame(x = rep(NA,20000),y = rep(NA,20000))
或者重组代码以避免这种增量添加行的情况。正如我引用的链接中所讨论的,速度缓慢的原因是每次添加一行时,R 都需要找到一个新的连续内存块来容纳数据帧。大量的复制。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)