在Close和10ema Column之间执行%更改。期望的输出是%差异关闭列[3]
我在数据框中有我的数据
Close 10ema % Difference Close – 10ema / 10ema *100
12.81398 NA NA
13.2636 NA NA
13.54461 NA NA
13.76941 NA NA
13.82561 NA NA
13.88181 NA NA
13.76941 NA NA
13.88181 NA NA
13.4884 NA NA
13.4884 13.572704 -0.621128995
13.376 13.53693964 -1.188892325
13.376 13.50767788 -0.974837314
13.4884 13.50417281 -0.11679956
13.4322 13.49108685 -0.436487059
13.376 13.47016197 -0.699041087
13.376 13.45304161 -0.572670563
13.376 13.43903404 -0.469037013
我希望执行Close和10ema之间的%差异。
在excel中我会使用:
= sum(关闭1 - 10ema)10ema * 100
我正在使用的R代码:
new.dataframe$close.prct.ema.10 <- apply(new.dataframe[,c('Close', 'ema.10')], 1, function(x) { (x[1]-x[2]/x[2]) * 100 } )
我在[,c('关闭','ema.10')中指定要应用该功能的列。
也是函数告诉代码逐行执行函数之前的1,如:1,function(x)
这部分(x [1] / x [2] / x [2])* 100})试图说: 关闭 - ema10 / ema 10 * 100
1和2指向列名称在[,c('关闭','ema.10')中声明的顺序
然而,结果不起作用。代码对我来说很好,有道理,我在这里缺少什么?
答案 0 :(得分:0)
答案如下。这是语法的订单问题。以下是在两列之间应用百分比变化的工作解决方案。
new.dataframe$close.prct.ema.10 <- apply(new.dataframe[,c('Close', 'ema.10')], 1, function(x) { (x[1]-x[2])/x[2] * 100 } )
(x [1] -x [2])/ x [2] * 100
首先注意括号(x1-x2)/ 2 * 100