gpt4 book ai didi

r - 通过一个问题计算 R 和 off 中两个值之间的百分比变化

转载 作者:行者123 更新时间:2023-12-04 10:42:53 25 4
gpt4 key购买 nike

我正在尝试以以下形式计算 R 中两点之间的百分比变化:

(X_(i+1) - X_(i))/(X_(i))

到目前为止,这是我想出的:
#x is a vector from the dataframe
#lag is distance between two points being compared
percent_change = function(x,lag = 1)
{
n = length(x)
pchange = c((x[(1+lag):n] - x[1:(n-lag)])/x[1:(n-lag)],NA)
return(pchange)
}

但是,为了在 R 中完成这项任务,我必须绑定(bind)一个 NA 以避免:
Error in \`$<-.data.frame\`(\`*tmp*\`, "Change", value = c(0.00248221082243916,  : 
replacement has 4616 rows, data has 4617

有了这个添加,操作就会发生并与我计算出的应该在纸上对齐。

有没有办法让我不必附加 NA?

最佳答案

您确实需要 NA如果要存储 pc_change结果返回原始数据帧:

由于数组的最后一个元素没有 x+1与它进行比较将产生一个比原始向量短的向量 1(或滞后)。

警告:请注意,您有一个 NA添加 - 这对于 lag=1 的情况是正确的但更一般地,您需要需要 lag × NA元素。

尝试替换 NArep(NA,lag) .

这是使用内置 diff 的函数的更紧凑版本功能:

pcchange=function(x,lag=1) c(diff(x,lag),rep(NA,lag))/x

关于r - 通过一个问题计算 R 和 off 中两个值之间的百分比变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12342635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com