Skip to content

Instantly share code, notes, and snippets.

@oluies
Created February 28, 2016 08:26
Show Gist options
  • Save oluies/d781651523c683b8fa52 to your computer and use it in GitHub Desktop.
Save oluies/d781651523c683b8fa52 to your computer and use it in GitHub Desktop.
rolling mean rolling stddev 21 variables
// PARTITION BY id ORDER BY cykle ROWS BETWEEN 2 PRECEDING AND 2 FOLLOWING (5)
val w = Window.partitionBy("id").orderBy("cykle").rowsBetween(-2, 2)
//def getcols(id:String):Seq[Column] = Seq(mean($"s"+id).over(w).as("a"+id) sqrt( sum(pow($"s"+id - mean($"s"+id).over(w),2)).over(w) / 5).as("sd"+id))
val x = df.select('*,
mean($"s1").over(w).as("a1"),
sqrt( sum(pow($"s1" - mean($"s1").over(w),2)).over(w) / 5).as("sd1"),
mean($"s2").over(w).as("a2"),
sqrt( sum(pow($"s2" - mean($"s2").over(w),2)).over(w) / 5).as("sd2"),
mean($"s3").over(w).as("a3"),
sqrt( sum(pow($"s3" - mean($"s3").over(w),2)).over(w) / 5).as("sd3"),
mean($"s4").over(w).as("a4"),
sqrt( sum(pow($"s4" - mean($"s4").over(w),2)).over(w) / 5).as("sd4"),
mean($"s5").over(w).as("a5"),
sqrt( sum(pow($"s5" - mean($"s5").over(w),2)).over(w) / 5).as("sd5"),
mean($"s6").over(w).as("a6"),
sqrt( sum(pow($"s6" - mean($"s6").over(w),2)).over(w) / 5).as("sd6"),
mean($"s7").over(w).as("a7"),
sqrt( sum(pow($"s7" - mean($"s7").over(w),2)).over(w) / 5).as("sd7"),
mean($"s8").over(w).as("a8"),
sqrt( sum(pow($"s8" - mean($"s8").over(w),2)).over(w) / 5).as("sd8"),
mean($"s9").over(w).as("a9"),
sqrt( sum(pow($"s9" - mean($"s9").over(w),2)).over(w) / 5).as("sd9"),
mean($"s10").over(w).as("a10"),
sqrt( sum(pow($"s10" - mean($"s10").over(w),2)).over(w) / 5).as("sd10"),
mean($"s11").over(w).as("a11"),
sqrt( sum(pow($"s11" - mean($"s11").over(w),2)).over(w) / 5).as("sd11"),
mean($"s12").over(w).as("a12"),
sqrt( sum(pow($"s12" - mean($"s12").over(w),2)).over(w) / 5).as("sd12"),
mean($"s13").over(w).as("a13"),
sqrt( sum(pow($"s13" - mean($"s13").over(w),2)).over(w) / 5).as("sd13"),
mean($"s14").over(w).as("a14"),
sqrt( sum(pow($"s14" - mean($"s14").over(w),2)).over(w) / 5).as("sd14"),
mean($"s15").over(w).as("a15"),
sqrt( sum(pow($"s15" - mean($"s15").over(w),2)).over(w) / 5).as("sd15"),
mean($"s16").over(w).as("a16"),
sqrt( sum(pow($"s16" - mean($"s16").over(w),2)).over(w) / 5).as("sd16"),
mean($"s17").over(w).as("a17"),
sqrt( sum(pow($"s17" - mean($"s17").over(w),2)).over(w) / 5).as("sd17"),
mean($"s18").over(w).as("a18"),
sqrt( sum(pow($"s18" - mean($"s18").over(w),2)).over(w) / 5).as("sd18"),
mean($"s19").over(w).as("a19"),
sqrt( sum(pow($"s19" - mean($"s19").over(w),2)).over(w) / 5).as("sd19"),
mean($"s20").over(w).as("a20"),
sqrt( sum(pow($"s20" - mean($"s20").over(w),2)).over(w) / 5).as("sd20"),
mean($"s21").over(w).as("a21"),
sqrt( sum(pow($"s21" - mean($"s21").over(w),2)).over(w) / 5).as("sd21")
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment