持続時間の集合の最大公約数(gcd)を見つける必要があります:dur
。私は機能schoolmath
ライブラリのgcd
を使用していますR - 最大公約数dplyrルーチン
actrec dur
1 c Personal Care 120
2 c Free Time 10
3 c Free Time 70
4 c Free Time 40
5 b Unpaid 10
6 c Free Time 20
7 c Personal Care 30
8 c Free Time 40
9 c Free Time 40
10 c Free Time 10
私のデータは、このように見えます。 データをループして、ベクトルv
に値を格納しています。 最後に、min
のv
を使用して、自分のデータのgcdを検索します。 10
を与える
library(schoolmath)
l = length(dt$dur)
v = array(0, l)
for(i in 2:l){
v[i] = gcd(dt$dur[i], dt$dur[i-1])
}
minV = min(v[-1])
minV
。
しかし、私はこのルーチンをdplyr
に翻訳するのに問題があります。
私は(lag
for loopのようなものを考えました。
dt %>% mutate(gcd(dur, lag(dur, 0)))
しかし、動作しません。そして、私はmin
をどのように挿入するのか不明です。
ヒント?
'gcd'はベクトル化されていないようです。 – akrun
ここでは、gcdのベクトル化されたバージョンがあります(%d%これは役立つかもしれませんhttp://stackoverflow.com/a/21504113/3001626 –
おかげで面白い – giacomo