首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么使用fill=NA和function返回多个值时,rollapply要慢得多?

在R语言中,rollapply()函数是zoo包中的一个函数,用于在滚动窗口中应用指定的函数。在使用rollapply()函数时,如果使用fill=NA参数来填充滚动窗口中不足的元素,以及使用函数返回多个值时,可能会导致运行速度较慢的情况。

这是因为在使用fill=NA参数时,rollapply()函数需要在每个滚动窗口中填充缺失的元素,这涉及到对每个窗口进行遍历和填充操作,从而增加了计算的复杂度和时间消耗。

另外,当函数返回多个值时,rollapply()函数需要将这些值存储在一个数据结构中,并在每个窗口中返回这个数据结构。这涉及到对数据结构的创建、存储和返回操作,也会增加计算的复杂度和时间消耗。

为了提高rollapply()函数的运行速度,可以考虑以下几点优化措施:

  1. 尽量避免使用fill=NA参数,如果滚动窗口中的元素不足,可以在函数中进行处理,避免填充操作。
  2. 如果函数返回多个值,可以考虑将这些值存储在一个矩阵或数据框中,而不是一个列表或向量中,以减少数据结构的创建和存储操作。
  3. 可以尝试使用其他更高效的滚动窗口函数,如roll_sum()roll_mean()等,根据具体需求选择适合的函数。

需要注意的是,以上优化措施是一般性的建议,具体的优化方法还需要根据实际情况进行调整和尝试。此外,腾讯云相关产品和产品介绍链接地址与本问题无关,因此不提供相关信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

转录组数据的基因表达变化情况探索

变异系数又称“标准差率”,是衡量资料中各观测变异程度的另一个统计量。 当进行两个或多个资料变异程度的比较,如果度量单位与平均数相同,可以直接利用标准差来比较。...平均绝对误差(Mean Absolute Deviation),又叫平均绝对离差,它是是所有单个观测与算术平均值的偏差的绝对的平均。...可以看到基因长度的确是影响着CV,而且并不独立于表达量,所以还是需要去除这个因素。...可以使用校正表达量的代码来校正长度: 1library(zoo) 2table(rownames(exprSet) %in% gen_l[,1]) 3exprSet=exprSet[rownames...可以看到跟文章里面的非常 接近了,校正两次后的CV,就是 DM 这个计算公式参考: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4595712/#mmc1

2.7K60
  • 测量JavaScript函数的性能的简单方法及与其他方式对比

    这就是为什么能够识别代码中的瓶颈并测量改进的原因。尤其是在为浏览器开发JavaScript,要注意到你写的每一行JavaScript都有可能阻塞DOM,因为它是一种单线程语言。...performance API提供的功能远比只返回时间戳得多,它能够测量导航计时、用户计时或资源计时。请看这篇文章,里面有更详细的解释。...与其胡乱猜测代码中哪一部分是的,不如用上述这些函数来测量。 追踪它,首先把你的 console.time 语句放在的代码块周围。...注意输入 在实际应用中,给定函数的输入可能会发生很大变化。仅针对任意随机测量函数的速度并不能提供我们可以实际使用的任何有价值的数据。 确保使用相同的输入运行代码。...这是为什么要在多个引擎中进行测量的一个很好的例子。如果仅使用Chrome进行测量,您可能会得出结论,与 for 相比,forEach 并不那么糟糕。 节流你的CPU 这些数值看起来并不高。

    1K20

    散点图及数据分布情况

    默认情况下每个方向添加的扰动为数据点精度的40% #也可以通过timeweight进行调整 #使用ChickenWeight数据集,讲述不同饮食对小鸡成长的影响 cw_sp <- ggplot(ChickWeight...predictvals()函数可以简化向散点图添加模型拟合线的过程,只要传递一个模型作为参数就可以自动查询变量名,预测变量范围,并返回一个包含预测变量模型预测的数据框,再传给geom_line()就可以作图...当设定为包含两个数值的向量 #两个数值分别对应于x轴范围的上下限. # samples: x轴上包含的样本量 # ...: 更多参数 predictvals <- function(model, xvar...使用数学公式作为注解,必须使用正确的表达式语法才能保证输出合适的对象。...A:使用geom_violin()函数即可 小提琴图是一种用来对多个数据分布进行比较的方法.使用普通的密度曲线来对数个分布进行比较往往有一定困难,因为图中的线条会彼此干扰。

    8.1K10

    R tips: ggplot图层编写

    可以发现layer函数先处理了一个图层 的geomstat对象,然后解析出来各种美学图层参数,最后返回一个ggproto对象用于描述图层的各种信息。...因此可做如下总结 一个图层的定义(geom或者stat开头的函数)必须同时包含一个geom一个stat对象,通过layer函数将其串联在一起,返回一个ggproto对象。...这个返回的ggproto对象是基于一个LAYER父类,这个LAYER是一个容器,里面有GeomStat对象。...) ) } GeomWhisker对象的写法如下,绘制的图形对象是线段,主要的定义的是Geom对象的draw_group方法,返回使用grid::segmentsGrob函数生成的segmentsGrob...绘图对象,绘制的线段的位置是由StatBoxplot变换而来的最大最大决定的。

    27720

    如何通过R语言制作BBC风格的精美图片

    左对齐/右对齐文本 参数'hjust''vjust'指示水平和垂直文本对齐方式。 它们的可以在0到1之间,其中0左对齐,而1右对齐(或垂直对齐的底部顶部对齐)。...(如果您对为什么将x设置为大陆,将y设置为预期寿命感到困惑,那么当图表似乎正以相反的方式绘制它们,这是因为我们已经翻转了 使用coord_flip()进行绘图。...将左对齐标签添加到条形图 如果您想为条形图添加左对齐标签,只需根据数据设置x参数,而是直接使用数字指定y参数。y的确切将取决于数据范围。...例如,如果创建带有很多条形图的条形图,并要确保每个条形图标签之间有一定的呼吸空间,则可能是这种情况。 如果您确实保留了较大高度图的边距,那么轴标签之间的间隙可能会更大。...image.png 尽管可能性得多,但是如果您确实想对折线图进行等效处理并以大于默认高度的高度导出它,则需要执行相同的操作,但是要根据上表将t的值更改为负值 。

    13.1K10

    Pandas 2.2 中文官方教程指南(二十四)

    只要每个块适合内存,您就可以处理比内存大得多的数据集。 注意 当你执行的操作需要零或最小的块之间协调,分块工作效果很好。对于更复杂的工作流程,最好使用其他库。...这个稀疏对象在磁盘(pickled) Python 解释器中占用的内存得多。...位运算布尔 像==!=这样的位运算布尔运算符返回一个布尔Series,当与标量比较进行逐元素比较。...使用 np.nan 作为 NumPy 类型的 NA 表示 由于 NumPy Python 在一般情况下缺乏从头开始的 NA(缺失)支持,NA 可以用以下方式表示: 一种 掩码数组 解决方案:一个数据数组一个布尔数组...NumPy 类型的NA类型提升 当通过 reindex() 或其他方式将 NAs 引入现有的 Series 或 DataFrame ,布尔整数类型将被提升为不同的数据类型以存储 NA

    39100

    怎样测试 JavaScript 的函数性能

    performance API 提供的功能比仅返回时间戳得多。它可以测量导航时间、用户时间或资源时间。...但是还要避免一些陷阱: 分而治之 在筛选某些结果发现速度很慢,但你不知道瓶颈在哪里。 你可以用上面提到的这些函数来度量代码,而不必去猜测到底史哪一部分代码。...如果一个比另一个,那就继续往下走,直到发现瓶颈为止。 这些语句之间的代码越少,则跟踪到不感兴趣的内容的可能性就越小。 注意输入 在实际应用中,给定函数的输入可能会发生很大变化。...如果仅针对任意随机测量函数,那么速度并不能为我们提供任何有实用价值的数据。 确保运行代码使用的输入是相同的。...这是一个很好的例子,说明了为什么应该在多个引擎中进行测量。如果仅用 Chrome 进行测量,你可能会得出:forEach 相对于 for 而言还算不错这样的结论。

    1.4K41

    超详细的R语言热图绘制之complexheatmap:01

    热图列表由多个热图主体热图注释组成,但不同的热图主体注释被有序排列,使得彼此之间具有较好的可比性。...热图注释 热图注释概念,如何绘制简单注释复杂注释,简单注释复杂注释的不同 4. 热图列表 如何绘制多个热图注释,它们的位置排布是怎样安排的 5....颜色映射函数接受数值型向量,并返回对应的颜色向量。用户应始终使用circlize::colorRamp2()函数在Heatmap()中生成颜色映射。...另外,使用colorRamp2()有助于生成带有适当刻度线的图例。 在以下示例中,线性插-22之间的以获得相应的颜色,大于2的都映射为红色,小于-2的都映射为绿色。...colorRamp2()可以使得多个热图之间的颜色具有可比性,如下所示,在3个热图中,相同的颜色总是对应相同的数值: p1 <- Heatmap(mat, name = "mat", col = col_fun

    3.8K32

    数据科学19 | 统计推断-t分布置信区间

    使用manipulate( )观察不同自由度的t分布与标准正态分布: k <- 1000 xvals <- seq(-5, 5, length = k) myplot <- function(df){...使用manipulate( )观察不同自由度的t分布与标准正态分布的分位数: pvals <- seq(.5, .99, by = .01) myplot2 <- function(df){ d...偏态分布的数据不满足t分布置信区间的假设,置信区间的中心落在均值处没有意义,可以考虑使用对数处理数据,或使用其他统计量如中位数。...第1种饮食的末端变异似乎比第4种饮食的末端变异大得多,但第1种饮食中的鸡比第4种饮食中的鸡数量多,所以很难真正比较变化。观察每组均值,第1种饮食的平均体重增长似乎确实比第4种饮食的平均体重增长。...labs(x="factor(Diet)",fill="factor(Diet)") ?

    3.6K20

    R语言基因组数据分析可能会用到的data.table函数整理

    ; header 第一行是否是列名; na.strings 对NA的解释; file 文件路径,再确保没有执行shell命令很有用,也可以在input参数输入; stringsASFactors...,默认FALSE,像rbind一样,直接bind,当时TRUE的时候,至少要有一个对象的一列存在行名; fill 如果TRUE,缺失的列用NA填充,这个时候bind的对象可以不同列数,并且use.names...默认nomatch=NA,无匹配返回NA,也可以设置为0,0不返回该行; which 默认FALSE结果返回xy行的联合,当是TRUE,如果mult=“all”,返回两列,一列...x列号,一列相对应的y,如果nomatch=NA,不匹配的返回y的NA,如果nomatch=0,则跳过该列,设置mult="first“,mult=”last"则最后返回x一样的行数; verbose...; nomatch 不匹配返回,强制转化整型 好了,写到这里写的都有点累了,再介绍最后一个函数,有时候我们需要了解你写的这个脚本运行所花费的时间,这个时候保存开始运行时间结束运行时间

    3.4K10

    R语言中的特殊及缺失NA的处理方法

    R语言中存在一些null-able values,当我们进行数据分析,理解这些是非常重要的。...另外,NANA”不可以互换。 NULL NULL是一个对象(object),当表达式或函数产生无定义的或者导入数据类型未知的数据就会返回NULL。...replace_na(df$X1,5) # 把df的X1列中的NA填充为5 2.3 fill() 使用tidyr包的fill()函数将上/下一行的数值填充至选定列中NA。...3 虚拟变量法 当分类自变量出现NA,把缺失单独作为新的一类。 在性别中,只有男女两类,虚拟变量的话以女性为0,男性为1。如果出现了缺失,可以把缺失赋值为2,单独作为一类。...4 回归填补法 假定有身高体重两个变量,填补体重的缺失,我们可以把体重作为因变量,建立体重对身高的回归方程,然后根据身高的非缺失,预测体重的缺失

    3.1K20

    Spark数据工程|专题(1)——引入,安装,数据填充,异常处理等

    当然了,之后的所有代码我们都会使用Scala来书写。至于为什么不用万金油Python,最大的原因就是速度,也就是说即使是pyspark,在实际的数据工程操作中也很少会被采用。...不同的数据自然要有不同的处理方式,因此我们这里也会介绍使用不同的方式进行填充,对应的不同的代码。在这一部分,我们会介绍以平均数,中位数,众数自己手动处理方式进行空填充的方式。...最后便是最为让人难以理解的地方,为什么先把它转为String,再转为Double呢?这是因为按照我们上面的处理,最终得到的其实是一个Any格式的内容。...因此很明显,我们先找到这个数,保存下来,再填进去。这个思路上面没有差别。...Remark 11: 函数内容的最后一行只有一个变量dfTemp,这个就是函数的返回,而上方定义函数名的部分规定了函数的返回类型为DataFrame对象。 这些都算是非常常见的用法。

    6.5K40
    领券