#r #plyr
#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'
Вопрос: Как я могу разрешить WMA возвращать ИСХОДНЫЕ значения, когда n<3, и не аварийно завершать работу?
Ответ №1:
Как насчет использования ifelse
?
wavData = ddply(wavData, c("primary", "interference", "label"), transform,
value = ifelse(length(value) < 3, value, WMA(value,3,wts=1:3)))
Комментарии:
1. 1, но
ifelse
может быть медленным. Поскольку отдельные элементы результата не затрагиваются, простой блок if / else будет быстрее:value = if(length(value) < 3) value else WMA(value,3,wts=1:3)