需要区分Sample_data中的第二列。 R中使用的代码如下:
y<-Sample_Data[,2]
> d.y<-diff(y, lag=1)
> diff(y)
# A tibble: 8 x 0
为什么我将d.y
作为变量8 x 0?
Sample_data:
Day Amount
01-01-2017 1400
02-01-2017 1500
03-01-2017 1200
04-01-2017 1300
05-01-2017 800
06-01-2017 900
07-01-2017 500
08-01-2017 1400
答案 0 :(得分:2)
y
是一个tibble,但是diff需要一个向量。对一个元素进行子集将使其保持一定程度。您可以使用pull
或$
将数据作为向量访问:
library(dplyr)
y <- pull(Sample_Data, 2)
diff(y)
答案 1 :(得分:1)
这是你想要的?一个简单的例子。
day <- as.POSIXct(c("01-01-2017", "02-01-2017", "03-01-2017", "04-01-2017",
"05-01-2017", "06-01-2017", "07-01-2017", "08-01-2017"),
format = "%m-%d-%Y")
amount <- c(1400, 1500, 1200, 1300, 800, 900, 500, 1400)
df <- data.frame(Day = day, Amount = amount)
df <- cbind(df, c(0, Diff = diff(df$Amount, lag = 1)))
print(df)