r语言中c(1 3)间距,1. R语言运行效率分析_小结(3)

小结(3)

以上用到了9个方法实现一个问题,在实现的过程中试验数据量为n=10。得到不同方法所用的平均耗时间大小。每种方法在计算平均耗时的重复次数为N =100。当然上述的每个方法测试的数据量尽管相同,但由于(1)数据内容不尽相同,(2)由于测试耗时的时候后台打开的程序多少不同(CPU和内存任务量不同),(3)每种方法所处理的内容不尽相同。这些都对所测试的结果产生影响。为此,为了减小这些影响,本节主要通过增加数据量大小(n)(也可以增加重复次数(N ),本例没加以讨论)来估测每种方法的优劣。另外,为了具有可比性,以下统计结果均为处理单个数据所消耗的时间。时间单位为微秒(microsecond)

根据上述9个函数,

#根据上述数据生成图

library(tidyverse)

data

data

head(data)

fun n N type mean

1 for_if 10 100 Month 1.167005

2 for_if_else 10 100 Month 0.918378

3 for_ifelse 10 100 Month 16.727339

4 for_switch 10 100 Month 1.713591

5 which 10 100 Month 5.705561

6 join 10 100 Month 183.532495

ggplot(data,aes(n,mean,color=fun))+

geom_point()+

facet_wrap(~type)+

theme(axis.text.x = element_text(angle=90))+

scale_x_continuous(name="length of vector")+

scale_y_continuous(name="time")

bVbDHM3从上图可以看出,随着数据量的增加,处理每个数据所需的平均时间均呈减少趋势。先不说ddply的并行运算,其它8个函数均在数据量小于250的时候,随着数据量的增加,处理每个数据平均时间急速减少;当数据量大于250时,随着数据量的增加,处理每个数据平均时间减少趋势逐渐放缓。

我们进一步分析数据量大于250的情形:

ggplot(data[which(data$fun!="ddply_parallel"),],aes(n,mean,color=fun))+

geom_point()+

facet_wrap(~type)+

theme(axis.text.x = element_text(angle=90))+

scale_x_continuous(name="length of vector",limits=c(250,1000))+

scale_y_continuous(name="time",limits=c(0,80))

bVbDHM4从上图可以看出,随着数据量的增加,每个数据不同方法的平均运算时间都在减少,但减速不同,在数据量400

总体来说,ddply>[for_ifelse,str_replace,for_switch]>[which,join]

为此,我们下一节主要讨论当数据量足够大时,这几个函数处理数据的平均 时长是何种规律。

(未完!待续……)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值