首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Power Query中@的用法—递归

Power Query中@的用法—递归

作者头像
逍遥之
发布于 2020-03-23 10:36:17
发布于 2020-03-23 10:36:17
1.5K00
代码可运行
举报
文章被收录于专栏:数据技巧数据技巧
运行总次数:0
代码可运行

(一) 含义

在Power Query中@是表示范围运算符,通常在使用递归时运用其自身。

(二) 一般使用

把函数自身参数运用于其他函数。

例1:

(x) =>@Number.From(x)+10

解释:定义一个调用自身参数并转换成数字格式并+10的函数。这种写法实际上和不指定是一样的,因为参数本身未进行变化参与到后期的运算。

例2:

(x)=>@Text.From(x)&"有限公司"

解释:调用自身参数后进行后缀添加上有限公司。

(三) 循环使用

例1:累加求和

fx=(x)=>if x<=1 then x else @fx(x-1)+x

解释:因为涉及到循环,需要制定一个循环结束条件。此函数为正数累加求和。

从1累计到5进行求和。

次数

X初始

x-1

X终值

1

5

4

9

2

4

3

12

3

3

2

14

4

2

1

15

例2:累计乘积

如果一个股票目前的市场价格是10元,如果连续5个涨停能达到多少价格呢?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fx = (price, day)=>[现价=1.1*price,
                    终值=if day=0 then price
                         else @fx(现值,day-1)]
                   [终值]

解释:这里我们有2个变量参数在进行运算,一个是价格,一个是涨停天数。对于多变量的,我们可以通过Record格式来进行记录。同时if的then是作为结束判断语句,else是作为循环运行的计算公式。

次数

Price初始

Day初始

现价

Day终值

终值

1

10

5

10*1.1=11

4

11

2

11

4

11*1.1=12.1

3

12.1

3

12.1

3

12.1*1.1=13.31

2

13.31

4

13.31

2

13.31*1.1=14.641

1

14.641

5

14.641

1

14.641*1.1=16.1051

0

16.1051

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-01-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据技巧 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Power Query中批量处理操作(5)
List.Generate(initial as function, condition as function, next as function,optional selector as nullable function)as list
逍遥之
2020/03/23
6430
Power Query中批量处理操作(2)
List.TransformMany(list as list, collectionTransform as function, resultTransfrom as function)as list
逍遥之
2020/03/23
7250
如何在Power Query中批量添加自定义列
一般情况下,我们如果需要添加列,可以一列一列根据需要进行添加,那如果我们需要根据固定的需求进行批量添加,那如何操作呢?
逍遥之
2020/03/24
9K1
如何在Power Query中批量添加自定义列
Power Query 系列 (16) - List.Generate 函数用法
本篇讲解 List.Generate 函数的用法。这个函数的功能是用于生成 list,可以是单值,也可以是结构化类型,比较灵活,使用起来有一定难度。
StoneWM
2021/03/25
1.7K0
QuantLib教程(三)BS模型、二叉树模型与欧式期权定价
风险中性与无套利假设是期权定价公式的基础理论,或者说基石。我们来简单说说这两个是怎么回事吧。
钱塘小甲子
2019/01/28
4.4K0
Power Query中批量处理操作(3)
List.Accumulate(list as list, seed as any, accumulator as function) as any
逍遥之
2020/03/23
7790
R语言几何布朗运动GBM模拟股票价格优化建立期权定价用概率加权收益曲线可视化
它有一些很好的属性,通常与股票价格一致,例如对数正态分布(因此向下限制为零),并且期望收益不取决于价格的大小。
拓端
2022/06/08
1.4K0
R语言几何布朗运动GBM模拟股票价格优化建立期权定价用概率加权收益曲线可视化
代码片段分享:14个JavaScript代码片段,轻松掌握reduce进阶用法
你是不是还在为处理数组头疼?那你一定要试试JavaScript的reduce方法!这个方法真的超强大,能把数组里的每个元素都“串”起来,最后得到一个你想要的结果。不管你是要计算总和,还是想把数据转换成另一种形式,reduce都能轻松帮你搞定。而且,用好了它,你会发现自己写的代码更简洁、更优雅!对初学者来说,掌握这个方法绝对是提升编程能力的关键一步,快来试试吧!
前端达人
2024/11/25
2460
代码片段分享:14个JavaScript代码片段,轻松掌握reduce进阶用法
Java基础-06.总结二维数组,面向对象
1:二维数组(理解) (1)元素是一维数组的数组。 (2)格式: A:数据类型[][] 数组名 = new 数据类型[m][n]; B:数据类型[][] 数组名 = new 数据类型[m][]; C:数据类型[][] 数组名 = new 数据类型[][]{{...},{...},{...}}; D:数据类型[][] 数组名 = {{...},{...},{...}}; /* 二维数组:就是元素为一维数组的一个数组。 格式1: 数据类型[][] 数组名 = new 数据类型[m][n];
Java帮帮
2018/03/15
1.2K0
Python异常值的自动检测实战案例
异常值检测(outlier)是一种数据挖掘过程,用于确定数据集中发现的异常值并确定其出现的详细信息。当前自动异常检测至关重要,因为大量数据无法手动标记异常值。自动异常检测具有广泛的应用,例如信用卡欺诈检测,系统健康监测,故障检测以及传感器网络中的事件检测系统等。今天我们就通过使用python来实现异常值的自动检测系统的实战开发。我们将会使用以下技术来实现异常值检测:
小白学视觉
2024/09/11
2940
Python异常值的自动检测实战案例
SQL操作三
文章目录 1. Day03 1.1. 查询null 1.2. 别名 1.3. 去除重复的值(distinct) 1.4. where 1.5. and 和 or 1.6. like 1.6.1. not like (不包含) 1.7. between … and (在..之间) 1.8. in (查询的值为多个) 1.9. order by 1.10. 分页 limit 子句 1.11. concat() 函数 1.12. 数值运算 1.13. 日期相关函数 1.14. DATE_FORMATE(
爱撒谎的男孩
2019/12/31
6270
Python异常值的自动检测实战案例
异常值检测(outlier)是一种数据挖掘过程,用于确定数据集中发现的异常值并确定其出现的详细信息。当前自动异常检测至关重要,因为大量数据无法手动标记异常值。自动异常检测具有广泛的应用,例如信用卡欺诈检测,系统健康监测,故障检测以及传感器网络中的事件检测系统等。今天我们就通过使用Python来实现异常值的自动检测系统的实战开发。我们将会使用以下技术来实现异常值检测:
算法进阶
2023/08/28
6470
Python异常值的自动检测实战案例
C语言万字基础笔记总结(三)
- 例:编写一个函数sum,由用户输入**参数n**,计算1+2+...+(n-1)+n的**结果并返回**。
远方的星
2021/08/02
9950
C语言万字基础笔记总结(三)
2013年第四届C/C++ A组蓝桥杯省赛真题解析
大数学家高斯有个好习惯:无论如何都要记日记。 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢? 高斯出生于:1777年4月30日。 在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。 高斯获得博士学位的那天日记上标着:8113 请你算出高斯获得博士学位的年月日。 提交答案的格式是:yyyy-mm-dd, 例如:1980-03-21
叶茂林
2023/07/30
2440
2013年第四届C/C++ A组蓝桥杯省赛真题解析
ES5的数组方法reduce()详解及应用
比较以上三种方式,直观上代码行数没有变少,性能和效率上还没有去实践,未知。 那为什么还要使用reduce()呢?
celineWong7
2020/11/05
9590
如何在Power Query中提取数据——列表篇(4)
List.RemoveRange(list as list, index as number, optional count as number) as list
逍遥之
2020/03/23
1.6K1
JS数组常用的方法
map()方法把调用它的数组的每一个元素分别传给指定的函数,返回这个函数的返回值构成的数组
赤蓝紫
2023/01/02
4.5K0
JS数组常用的方法
Python第四课----函数
2、调用 函数定义,只是声明,不会执行,需要调用 加上小括号调用 调用时写的参数是实际参数,是传入的值,简称实参
py3study
2020/01/14
5430
Python
概念:保留字是Python语言中已经被赋予特定意义的一些单词,开发程序时,不可以作为变量、函数、类、模块和其他对象的名称来使用。
青灯古酒
2023/10/16
2400
Python
【C语言程序设计——函数】分数数列求和2(头歌实践教学平台习题)【合集】
根据公式S= 1+1 /(1! +2!)+1/(1! +2! +3!)+······+1/(1! +2! +3! ······+n!),可以发现每一项的分子都是1,分母则分别是1!,1! +2!,1! +2! +3!,......,1! +2! +3! ······+n!。因此可分别通过子函数 float fun(int n) 实现求阶乘,通过子函数 float sum(int n) 求和。
Rossy Yan
2025/01/24
2050
【C语言程序设计——函数】分数数列求和2(头歌实践教学平台习题)【合集】
相关推荐
Power Query中批量处理操作(5)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验