crossfilter.js 라이브러리를 사용하여 시각화 작업을하고 있는데, 데이터 세트에서 중첩 된 특성의 치수를 만드는 방법에 대해 약간 혼란 스럽습니다. 예를 들어, 데이터 세트의 각 인스턴스가 여러 날짜는 다음과 같습니다 데이터 구조의 결과로, 그와 관련된했습니다Crossfilter.js : 중첩 된 특성이있는 차원/그룹 만들기
[ { name: 'instance_name',
dates: ['2014-11-11', '2013-07-06', '2011-02-04'],
category: 'category 1' },
{ name: 'instance_name2',
dates: ['2012-01-01', '2013-03-07'],
category: 'category 2' } ]
을 기준으로 필터링 수 있도록 크기를 만들 수 있도록 내가 좋아하는 것
, 예를 들어, 날짜와 카테고리 및 치수는 교차 필터를 사용하여 직접 수행 할 수 있습니다. 그러나 날짜를 파싱하는 방법을 모르겠습니다. 내가 좋아하는 뭔가를 사용하여 날짜 치수를 만드는 첫 번째 시도했다 :
var cf = crossfilter(data);
var dateDim = cf.dimension(function(d) { return d.dates; });
을 다음 .map()
방법과 같이 사용하여 변수처럼 날짜를 저장하려고 : 위의 단지 검색 않습니다
var date = dateDim.top(Infinity).map(function(d) { return d.dates; });
날짜를 저장하고 변수로 저장하지만 (a) 이것은 각각 문자열의 날짜 배열입니다. (b) 다른 크로스 필터 치수에 dateDim
을 연결하는 데 더 가까이 접근하지 않습니다. 시각화를 위해 만듭니다. 어떤 도움이라도 대단히 감사하겠습니다. 읽어 주셔서 감사합니다.
여기에 계산 문제를 완화시키는 맞춤 그룹 기능이 있습니까? –
그룹에서 보는 각 고유 키 (이 경우 '이름'필드) 중 첫 번째 키만 계산하는 그룹입니다. Reductio의 예외 집계는 혼동을 일으킬 지 모르지만 혼란 스럽지만 다음과 같습니다. https://github.com/esjewett/reductio#aggregations-standard-aggregations-exception-aggregation –
이 코드는 정확하다고 표시되었지만 더 이상 최적이 아닙니다. -) CrossFilter 1.4.0 alphas에서 차원 배열을 사용하여 병합하지 않고 처리 할 수 있습니다. –