【发布时间】:2014-07-28 13:55:52
【问题描述】:
我正在尝试使用 ddply 包编写函数。我已经阅读了几个解决方案,但我无法弄清楚如何在我的案例中解决这个问题。
Rolling <- function(ID, RP){
require(plyr)
cn=colnames(ID)
Rolling3M=ddply(ID, cn[2:(length(cn)-1)], transform, Rolling3M = as.numeric(filter(v3,c(1,rep(1,times=RP)),sides=1)))
return(Rolling3M)
}
v1=c("a","a","a","a","a","a","a","b","b","b","b","b","b")
v2=c("c","c","c","d","d","d","d","c","c","c","d","d","d")
v3=c(1:13)
df = data.frame(v1,v2,v3)
output=Rolling(df, 3)
我收到此错误消息:Error: object 'RP' not found
我也想这样做:
output=ddply(df, .(v1,v2),transform, Rolling3M=as.numeric(filter(v3,c(1,rep(1,2)), sides=1)))
【问题讨论】:
-
你是怎么调用函数的?请提供示例数据以创建reproducible example
-
我收到一个错误,该错误也涉及到
filter的参数,但它是针对第一个参数“Freq”,而不是第二个。这对我来说更有意义,因为我没有看到任何名为“Freq”的东西。