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

教你几招R语言中的聚合操作

在R语言中提供了几种实现数据聚合的常用函数,它们分别是基于stats包中的aggregate函数、基于sqldf包中的sqldf函数以及基于dplyr包中的group_by函数和summarize函数。...如上表所示,左图结果为aggregate函数的第一种用法,右图结果为第二种用法。...,包含多种聚合函数);另一个是无法对数据集中多个不同的数值型变量使用不同的聚合函数。...如上表所示,利用sqldf函数可以轻松得到不同变量的不同聚合结果,但前提是读者必须掌握数据库SQL的语法。...尽管sqldf函数可以借助于SQL语法实现数据的聚合,但是使用该函数时容易产生异常错误,例如参数drv的值指定错误,就会导致sqldf函数无法生成结果(根据经验,参数drv的值设置为’SQLite’时,

3.4K20

R问题|如何查看函数的源代码

简介 最近有读者问我,如何查看R语言某包中某函数的源代码呢?我第一时间给出了自己比较常用的方法(见方法一),今天打算做个这方面的推文,于是又查了些资料,才发现原来水好深!...还有更好的方法(见方法二),并且和不同的面向对象系统有关。 方法一 打开查R包的相关网站,比如:https://rdrr.io/ ?...查R包的相关网站 输入你的R包名称或者相应的函数,这里以nlme包中的lme()为例。 ? 找到对应位置 进入会出现这样的界面,界面相应介绍可以下图: ?...> getAnywhere(t.ts) A single object matching ‘t.ts’ was found It was found in the following places...对于ts.union,.cbindts和.makeNamesTs是stats名称空间中未导出的函数。

3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Hail-GWAS教程笔记

    我们进行了全基因组SNP关联测试,并证明了需要控制由群体分层引起的混杂。...QC是一个迭代过程,每个项目都是不同的:QC没有"按钮"解决方案。每次Broad收集一组新的样本时,它都会发现新的批次效应。...在读数不在应该的地方过滤掉基因型是个好主意:如果我们找到一个称为纯合子参考的基因型>10%的alt reads,或者称为杂合子的基因型,没有接近1:1的ref / alt平衡,则很可能是一个错误。...我们已经用报告的祖先注释了我们的样本,但由于人为错误,对这些标签持怀疑态度是件好事。基因组没有这个问题!我们将通过使用报告的祖先,而是通过在我们的模型中包含计算的主成分来作为遗传祖先。...现在只需应用Hail的Nature论文功能即可发布结果。 开个玩笑,这个功能要到Hail 1.0才会登陆!

    66620

    Hail-GWAS教程笔记

    我们进行了全基因组SNP关联测试,并证明了需要控制由群体分层引起的混杂。...'AMR': 34, 'SAS': 55, 'EUR': 47} pprint(mt.aggregate_cols(hl.agg.stats(mt.pheno.CaffeineConsumption)...QC是一个迭代过程,每个项目都是不同的:QC没有"按钮"解决方案。每次Broad收集一组新的样本时,它都会发现新的批次效应。...我们已经用报告的祖先注释了我们的样本,但由于人为错误,对这些标签持怀疑态度是件好事。基因组没有这个问题!我们将通过使用报告的祖先,而是通过在我们的模型中包含计算的主成分来作为遗传祖先。...现在只需应用Hail的Nature论文功能即可发布结果。 开个玩笑,这个功能要到Hail 1.0才会登陆!

    1.1K20

    一步一步理解Impala query profile(二)

    )来进行资源预估(resource estimation),并执行查询计划来确定运行查询的最佳策略,如果统计信息不是最新的,Impala最终将使用错误的查询计划,从而影响整体查询性能。...0B mem-reservation=0B | tuple-ids=1 row-size=8B cardinality=1 在每个工作节点(worker node)上完成聚合之后,需要将每个工作节点的结果交换给协调器节点...(coordinator),这个步骤主要做的是这个操作,之后,协调器节点需要对这些结果进行最后的汇总/合并(aggregation/merger): 03:AGGREGATE [FINALIZE] |...#Rows值为-1,#Rows的值为823,就我们的测试表而言,我们没有表统计信息,因此Impala报告了-1的估算值。...如果估计值(estimated value)是正数,但仍与实际返回的行数不同,我们就需要对该表运行COMPUTE STATS以更新统计信息 参与查询操作的节点数量:#Hosts列告诉我们,有多少工作节点参与了查询中的相关操作

    1.9K31

    Impala 2.12.0与3.4.0版本的compute stats兼容问题

    当我们提交了SQL之后,Impala会自动提交两条子SQL来进行相应信息的获取,相关的SQL我们可以在第一章的第二幅图中看到,3.4.0和2.12.0版本的两个SQL略有不同。...) ------Update(incr-stats-util.cc) 上述的代码调用都是属于BE模块的,这里主要分为两个分支流程:1)Execute函数,主要就是对两个子查询就行计算,并且保存相应地结果...当我们在3.4.0版本再次执行compute incremental stats [partition_spec],会对之前的增量分区统计信息进行汇总(对于Nulls,是多个-1相加,最终结果小于-1)...复现步骤 这里我们使用一个测试表进行测试,在2.12.0版本执行如下SQL: CREATE TABLE stats_test (id INT, name STRING) PARTITIONED BY (...后续补充 后续我们发现,社区也已经有了类似的JIRA:IMPALA-10230

    95640

    GEE错误——image.reduceRegion is not a function

    简介 image.reduceRegion is not a function 这里的主要问题是我们进行地统计分析的时候,我们的作用对象必须是单景影像,而不是影像集合 错误"image.reduceRegion...请确保你加载了正确的图像数据,或者使用其他方法创建图像对象。 你使用了错误的函数名称。请检查你的代码,确保你使用的是reduceRegion()而不是其他名称类似的函数。..."); 正确解析  这里的正确思路是我们需要进行分析,也就是说我们的作用对象是影像,而非影像集合,所以这里我们不能混淆这里两个概念,首先看一下两个函数的差异: ee.Image(args) An object...Returns: ImageCollection 这是两个之间的差异,然后再看reduce region的函数 reduceRegion(reducer, geometry, scale, crs, crsTransform...Returns: Dictionary 具体分析 这里其实最主要的问题是我们作用的对象是image,但是这里我们要写入function的时候,我们写入的方式不对,所以这里出现了错误,这里的问题就在于我们需要重新解析我们的函数

    16910

    数据库性能问题总结--屡次发生的Oracle谓词越界

    由于统计信息不全,按照 CBO 计算出来的结果集就很小,在多表关联的情况下,CBO 就会选择认为的最优的关联方式,而实际执行时发现不是那么回事,有大量结果集需要扫描,就会爆发 SQL 性能问题。...谓词越界就是 select 的谓词的条件不在统计信息 low_value 和 high_value 之间,在实际选择结果集要大于 CBO 记录的结果集数量,即实际的 selectivity 偏大,这种情况下...测试验证 下面做一组测试,从执行计划 cost 看谓词越界的发生过程,先插入部分数据: DECLARE i INT; BEGIN i := 78179; WHILE(i < 100000) LOOP i...dictionary 值为 1,这明显是一个错误的执行计划,由于统计信息过旧,已经低于谓词条件区间(谓词过界)导致 CBO 低估了查询成本。...TEST@PROD1> exec dbms_stats.gather_table_stats('test','test_obj'); TEST@PROD1> select low_value ,high_value

    60120

    一步一步理解Impala query profile(二)

    ,如果统计信息不是最新的,Impala最终将使用错误的查询计划,从而影响整体查询性能。...0B mem-reservation=0B | tuple-ids=1 row-size=8B cardinality=1 在每个工作节点(worker node)上完成聚合之后,需要将每个工作节点的结果交换给协调器节点...(coordinator),这个步骤主要做的是这个操作,之后,协调器节点需要对这些结果进行最后的汇总/合并(aggregation/merger): 03:AGGREGATE [FINALIZE] |...#Rows值为-1,#Rows的值为823,就我们的测试表而言,我们没有表统计信息,因此Impala报告了-1的估算值。...如果估计值(estimated value)是正数,但仍与实际返回的行数不同,我们就需要对该表运行COMPUTE STATS以更新统计信息 参与查询操作的节点数量:#Hosts列告诉我们,有多少工作节点参与了查询中的相关操作

    1.7K31

    Oracle 历史SQL语句执行计划的对比与分析

    --从上面的查询结果可以看到,同一条历史SQL语句有不同的plan_hash_value 以及使用了不同的执行计划 --最早的一个是走索引范围扫描,一个是全表扫描 --下面直接从dba_hist_sql_plan...exec dbms_stats.gather_table_stats('SCOTT','BIG_TABLE',cascade=>true); BEGIN dbms_stats.gather_table_stats...脚本,请参考:Oracle 测试常用表BIG_TABLE b、alter table move 方式用于实现段收缩,移动高水位,但不会释放申请的空间,以及导致索引失效 c、对于历史SQL语句,需要执行...snapshot之后,才会被填充到DBA_HIST_SQL_PLAN、DBA_HIST_SQLSTAT、DBA_HIST_SNAPSHOT数据字典中 d、如果你的测试无法获得历史SQL语句及其执行计划,...或html文件 f、引起同一SQL执行计划发生变化的情形很多,如统计信息的缺失,索引失效,不同级别的参数发生变化等 h、对于实例,会话,语句级别环境变化导致同一SQL执行计划发变异,也可以对此跟踪。

    1.2K10

    RFM模型及R语言实现

    这时候我们要考虑是直接用R(Recency)、F(Frequency)、M (Monetary)三个变量还是要进行变换,因为R、F、M三个字段的测量尺度不同最好对三个变量进行标准化,例如:Z得分(实际情况可以选择线性插值法...另外一个考虑:就是R、F、M三个指标的权重该如何考虑,在现实营销中这三个指标重要性显然不同!...输出结果后将R、F、M三个字段分类与该字段的均值进行比较,利用Excel软件的条件格式给出与均值比较的趋势!...:首先将数据进行分组(按行),然后对每一组数据进行函数统计,最后把结果组合成一个比较nice的表格返回 # aggregate(x, by, FUN, ..., simplify = TRUE) #统计每个用户的购买总值...R,F,M # merge:将两个DF融合成一个DF,merge(x, y, by = intersect(names(x), names(y)) ) test1=merge(salesF,salesR

    1.8K50

    Oracle面对“数据倾斜列使用绑定变量”场景的解决方案

    虽然使用绑定变量给OLTP系统带来了巨大的好处,但也同时带来一些棘手的问题,最典型的就是由于SQL文本中包含绑定变量,优化器无法知道绑定变量代表的具体值,只能使用默认的可选择率,这就可能导致由于无法准确判断值的可选择率而造成选择错误的执行计划...(如果是已经关闭这些特性的生产系统,开启还是要慎重测试后决定)。...2.构造测试用例     下面构造一个简单的测试用例来说明Oracle在这种场景下提供的解决方案(bind peeking + acs): --建表T_SKEW,构造出严重的数据倾斜: create table...optimizer_extended_cursor_sharing_ optimizer extended cursor sharing for relational operators SIMPLE rel 3.2 场景测试用例和测试结果...= :v1; select * from table(dbms_xplan.display_cursor(null,null,'allstats')); --2)场景测试结果 SQL> alter

    1.8K20

    Oracle 全表扫描及其执行计划(full table scan)

    但事实上很多时候全表扫描也并非是最低效的,完全要看不同的情形与场合,任一方式都是有利有弊的,也就是具体情况要具体分析。本文描述了什么是全表扫描以及何时发生全表扫描,何时全表扫描才低效。   ...--从上面的测试可以看出,当表上所返回的数据行数接近于表上的30%时,Oracle 倾向于使用全表扫描 --而对于表上所返回的数据行数接近于表上的30%的情形,我们给与索引提示,此时比全表扫描更高效,...即全表扫描是低效的 --笔者同时测试了数据返回总行数接近80%的情形以及创建了一个百万记录的进行对比测试 --大致结论,如果查询所返回的数据的总行数仅仅是表上数据的百分之八十以下,而使用了全表扫描,即可认为该全表扫描是低效的...--注: --具体情况需要具体分析,如果你的表是千万级的,返回总数据的百分之零点几都会导致很大的差异 --其次,表上的索引应具有良好的聚簇因子,如不然,测试的结果可能有天壤之别 --最后,上面所描述的返回总行数应与执行结果返回的行数有差异...,是指多少行参与了sum(object_id) 5、小表的全表扫描是否高效?

    2.8K10
    领券