本站分享:大数据、数据分析师考试认证培训,包括:Python培训Excel培训Matlab培训SPSS培训SAS培训R语言培训Hadoop培训Amos培训Stata培训Eviews培训广告位

R语言 慎用rbind_r语言 rbind_r语言培训

r语言 cdadata 196℃ 0评论

R语言 慎用rbind

关键词:r语言 rbind r语言rbind函数 r语言 rbind 列数不同

R语言用了这么久,经常在使用过程中使用rbind,觉得rbind这个函数挺好的,可以直接将数据框上下拼接。从来没有考虑过其效率问题。年前写了一个脚本,数据达到了千万行。习惯性的使用rbind来收集数据,这个脚本从年前到年后都没运行完,让我大伤脑筋,到底是R效率低下还是我的算法拙劣呢?

自动草稿

在多次修改算法后,我开始怀疑rbind函数的效率了。

脚本的主要意思比较两种方法的运行时间:

方法1:直接生成data.frame,然后再用rbind拼接data.frame

方法2:先生成向量,再在循环最后使用data.frame生成数据框

结果显示,当数据量增大时,rbind会耗费大量时间,而data.frame可以节约大量时间。

脚本如下:

m = seq(from=1000,to=10000,by=1000)
rb = d = NULL

for (n in m){
start = Sys.time()
a = b = c =NULL
r = NULL
for( i in 1:n)
{
r = rbind(r,data.frame(a=i,b=i,c=i))
}
end = Sys.time()
rb = c(rb,(end – start))

start = Sys.time()
a = b = c =NULL
r = NULL
for( i in 1:n)
{
a = c(a,i)
b = c(b,i)
c = c(c,i)
}
r = data.frame(a,b,c)
end = Sys.time()
d = c(d, (end – start))
}
print(data.frame(rb,d))

转载请注明:数据分析 » R语言 慎用rbind_r语言 rbind_r语言培训

喜欢 (2)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址