【问题标题】:Applying percentage change between two columns, same row在两列、同一行之间应用百分比变化
【发布时间】:2017-06-14 00:26:18
【问题描述】:

在 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 (close 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 ('Close', 'ema.10')] 中指定要应用函数的列

函数前的 1 也是告诉代码逐行执行函数,如:, 1, function (x)

这部分 (x[1]/x[2]/x[2]) * 100 }) 试图说: 关闭 - ema10 / ema 10 *100

1和2指向[,C('Close', 'ema.10')中列名的表述顺序

但是,结果不起作用。该代码对我来说看起来很好并且很有意义,我在这里缺少什么?

【问题讨论】:

标签: r


【解决方案1】:

答案如下。这是语法的顺序问题。这是在两列之间应用百分比变化的工作解决方案。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-04
    • 1970-01-01
    • 2013-05-07
    • 1970-01-01
    • 2016-07-10
    • 1970-01-01
    相关资源
    最近更新 更多