gpt4 book ai didi

r - R向量/数据帧滞后的相反功能是什么?

转载 作者:行者123 更新时间:2023-12-03 15:25:20 25 4
gpt4 key购买 nike

我在处理R中的时间序列时遇到问题。

#--------------read data

wb = loadWorkbook("Countries_Europe_Prices.xlsx")
df = readWorksheet(wb, sheet="Sheet2")

x <- df$Year
y <- df$Index1

y <- lag(y, 1, na.pad = TRUE)
cbind(x, y)

它给了我以下输出:
        x     y
[1,] 1974 NA
[2,] 1975 50.8
[3,] 1976 51.9
[4,] 1977 54.8
[5,] 1978 58.8
[6,] 1979 64.0
[7,] 1980 68.8
[8,] 1981 73.6
[9,] 1982 74.3
[10,] 1983 74.5
[11,] 1984 72.9
[12,] 1985 72.1
[13,] 1986 72.3
[14,] 1987 71.7
[15,] 1988 72.9
[16,] 1989 75.3
[17,] 1990 81.2
[18,] 1991 84.3
[19,] 1992 87.2
[20,] 1993 90.1

但是我希望y中的第一个值为50.8,依此类推。换句话说,我想得到一个负的滞后。我不明白,该怎么办?

我的问题与此问题非常相似,但是我无法解决。我想我还是不明白解决方案...

Basic lag in R vector/dataframe

最佳答案

内置的“引导”功能如何? (来自dplyr包)
它不是完全可以完成艾哈迈德(Ahmed)函数的工作吗?

cbind(x, lead(y, 1))

如果您希望能够在同一函数中计算正或负滞后,我建议他的“移位”函数的“较短”版本:
shift = function(x, lag) {
require(dplyr)
switch(sign(lag)/2+1.5, lead(x, abs(lag)), lag(x, abs(lag)))
}

它要做的是创建2个案例,一个案例有滞后,另一个案例有领先,并根据您的滞后迹象选择一个案例(+1.5是一种将{-1,+1}转换为{1,2的技巧。 } 选择)。

关于r - R向量/数据帧滞后的相反功能是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28432599/

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