0
私はdata.frame持っている:GROUP_BYと時系列dplyr rに強制変換は
df <- data.frame(region = rep(c("a","b","c","d"),12),
group = rep(c("A","A","A","B","B","B","C","C","C","D","D","D"),12),
num = rep(c(1:12),12))
をそして私はそのグループによって、地域によってグループ化すると、時系列オブジェクトにNUMを強制 - 私はこれをやっています:
df %>%
group_by(region,group) %>%
mutate(num = ts(num,f=4))
そして、それは動作しますが、私は読んでの警告の全体の束を得る:私は大きなダにこれを適用しています
12: In mutate_impl(.data, dots) :
Vectorizing 'ts' elements may not preserve their attributes
を現実にしますta.frameと時系列データを分解する必要があります。私は私の簡略化した例では、そうするようにSTLを使用しています:
df %>%
group_by(region,group) %>%
mutate(num = ts(num,f=4)) %>%
mutate(trendcycle(stl(num, s.window = "per")))
が、私はというエラーを取得:
Error in mutate_impl(.data, dots) :
Evaluation error: series is not periodic or has less than two periods.
私は、これはにデータを強制しようとするとしなければならないことを推測していますTS形式。問題は、私はこれまでこれを問題なく行うことができたことです。私は攻撃することでここに来
df %>%
group_by(region,group) %>%
mutate(trendcycle(stl(ts(num,f=4), s.window = "per")))
:
私は、私は以下のように1つのmutate呼び出しにTS変換を含めることによって、問題を回避得ている0.7.1
私は、ts変換を次のように1つの突然変異呼び出しに含めることで問題を回避しました。 df%>% group_by(地域、グループ)%>% mutate(trendcycle(stl(ts(num、f = 4) )、s.window = "per"))))) –
これを解決策として投稿できます – akrun