반응형
설명
컬렉션 객체에서 주어진 사이즈로 리스트를 가져올수 있게 해주는것
시계열 데이터를 단계별로 처리하는 데 유용하다고 함
인자값
- size : 각 윈도우에 포함될 원소의 개수
- step : 각 단계마다 전진할 원소의 개수(기본 1개)
- partialWindows : 나뉘어 있는 마지막 부분이 윈도우에 필요한 만큼의 원소 개수를 갖지 못한 경우, 해당(= 마지막) 부분을 그대로 유지할지 여부를 알려주는 불리언 값, 기본값은 false
@Test
fun windowed() {
val range = 0..10
val temp = range.windowed(3, 3)
assertThat(range.windowed(3, 3),
contains(listOf(0,1,2), listOf(3,4,5), listOf(6,7,8)))
}
val temp = range.windowed(3, 3, true)
- 마지막 요소도 그대로 유지할것인지 유지하면 이렇게 4번째 요소에 9,10이 남게됨
@Test
fun windowed() {
val range = 0..10
val temp = range.windowed(3, 3)
assertThat(
range.windowed(3, 3),
contains(listOf(0, 1, 2), listOf(3, 4, 5), listOf(6, 7, 8))
)
val temp2 = range.windowed(3, 3) { it.average() }
assertThat(
temp2,
contains(1.0, 4.0, 7.0)
)
val temp3 = range.windowed(3,1)
assertThat(
temp3,
contains(listOf(0,1,2), listOf(1,2,3), listOf(2,3,4),
listOf(3,4,5), listOf(4,5,6), listOf(5,6,7),
listOf(6,7,8), listOf(7,8,9), listOf(8,9,10)
)
)
val temp4 = range.windowed(3,1) {it.average()}
assertThat(
temp4,
contains(1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0)
)
}
반응형
댓글