数据价值-DataValues

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 314|回复: 0

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

[复制链接]

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
39029
发表于 2017-1-4 13:18:57 | 显示全部楼层 |阅读模式
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语言培训
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|DataValues ( 赣ICP备16006919号 ) DataValues

GMT+8, 2019-8-24 19:23 , Processed in 0.118243 second(s), 29 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表