允许WMA(来自TTR包)在少于N个点时返回原始值

时间:2011-10-01 01:38:02

标签: r plyr

运行以下内容时:

wavData = ddply(wavData, c("primary", "interference", "label"), transform, 
                value = WMA(value,3,wts=1:3))

由ddply生成的一些结果分组中没有3个点,因此我收到以下错误:

Error in WMA(value, 3, wts = 1:3) : Invalid 'n'

问题:如何在n <3时允许WMA返回ORIGINAL值,而不是崩溃?

1 个答案:

答案 0 :(得分:1)

如何使用ifelse

wavData = ddply(wavData, c("primary", "interference", "label"), transform, 
            value = ifelse(length(value) < 3, value, WMA(value,3,wts=1:3)))