R 使用列滚动中值时出错

R 使用列滚动中值时出错,r,median,R,Median,我有一个dataframe,我尝试为它添加额外的列,计算当前值和前2个值的中值 Date Value 21/07/2016 14.8 22/07/2016 14.9 23/07/2016 15.8 24/07/2016 15.0 25/07/2016 15.7 26/07/2016 15.6 27/07/2016 16.1 28/07/2016 16.1 我使用了以下代码: library(zoo) dataframe$medianval <-rollme

我有一个dataframe,我尝试为它添加额外的列,计算当前值和前2个值的中值

Date         Value
21/07/2016  14.8
22/07/2016  14.9
23/07/2016  15.8
24/07/2016  15.0
25/07/2016  15.7
26/07/2016  15.6
27/07/2016  16.1
28/07/2016  16.1
我使用了以下代码:

library(zoo)
dataframe$medianval <-rollmedian(dataframe$Value,k=3)
图书馆(动物园)

dataframe$medianval错误:k想想R在这里试图做什么。数据帧有
8行
,但要追加的向量只有
6个
元素。这些元素应与哪些行对齐?R应该在另外两个地方放什么

library(zoo)
dataframe <- read.table(text="Date         Value
21/07/2016  14.8
22/07/2016  14.9
23/07/2016  15.8
24/07/2016  15.0
25/07/2016  15.7
26/07/2016  15.6
27/07/2016  16.1
28/07/2016  16.1", header=TRUE)
rollmedian(dataframe$Value,k=3)
# [1] 14.9 15.0 15.7 15.6 15.7 16.1
nrow(dataframe)                          # [1] 8
length(rollmedian(dataframe$Value,k=3))  # [1] 6
图书馆(动物园)

dataframe非常感谢您的帮助和澄清。是否会有不同于c的方式(NA,NA,…例如,如果我想运行一个循环测试不同的中位数长度?
library(zoo)
dataframe <- read.table(text="Date         Value
21/07/2016  14.8
22/07/2016  14.9
23/07/2016  15.8
24/07/2016  15.0
25/07/2016  15.7
26/07/2016  15.6
27/07/2016  16.1
28/07/2016  16.1", header=TRUE)
rollmedian(dataframe$Value,k=3)
# [1] 14.9 15.0 15.7 15.6 15.7 16.1
nrow(dataframe)                          # [1] 8
length(rollmedian(dataframe$Value,k=3))  # [1] 6
dataframe$medianval <- c(NA, NA, rollmedian(dataframe$Value,k=3))
dataframe
#         Date Value medianval
# 1 21/07/2016  14.8        NA
# 2 22/07/2016  14.9        NA
# 3 23/07/2016  15.8      14.9
# 4 24/07/2016  15.0      15.0
# 5 25/07/2016  15.7      15.7
# 6 26/07/2016  15.6      15.6
# 7 27/07/2016  16.1      15.7
# 8 28/07/2016  16.1      16.1
med.fun <- function(var, data, k){
  # Note: variable name must be in quotes
  return(c(rep(NA, k-1), with(data, rollmedian(get(var), k=k))))
}
med.fun("Value", dataframe, 5)
# [1]   NA   NA   NA   NA 15.0 15.6 15.7 15.7