Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Quiver 수식 문법

Quiver의 수식은 수학 표현식을 계산하거나 필터 조건을 표현합니다. 사용할 카드에 맞는 최종 출력형을 선택합니다.

값과 참조

값 또는 참조표현과 의미
숫자6, 3.14159, -128과 과학 표기법 1.602e-19
플롯 및 카드$A로 해당 ID를 참조. $A + $B는 두 입력의 합
Booleantrue, false. 비교와 논리 연산에 사용
문자열"high"처럼 따옴표로 표현
시간 참조secondsSince와 millisecondsSince에 ISO-8601 기준 시각 전달
NaNnull 같은 정의되지 않았거나 표현할 수 없는 숫자 값

예를 들어 다음 식은 UTC 기준 1970년 1월 1일부터의 초 단위 시간 참조입니다.

secondsSince("1970-01-01T00:00:00+00:00")

millisecondsSince는 같은 방식으로 밀리초를 사용합니다. Transform table의 열은 @column으로 참조합니다.

출력형과 Boolean 조건

일반 수식의 최종 결과는 숫자 또는 문자열 중 한 유형을 일관되게 반환해야 합니다. 같은 수식이 어떤 평가에서는 숫자를, 다른 평가에서는 문자열을 반환하는 구성은 허용하지 않습니다. 비교와 논리 연산의 중간값에는 Boolean을 사용할 수 있습니다.

숫자 출력이 필요한 카드에서 참과 거짓을 표현할 때는 다음처럼 1과 0으로 변환합니다.

$A > 0 ? 1 : 0

문자열 출력이 허용되는 문맥에서는 다음과 같이 표현합니다.

$A > 0 ? "true" : "false"

Transform table의 Boolean formula는 Boolean 열을 만드는 전용 변환이므로 @column > 0 같은 Boolean 결과를 직접 사용합니다. 이 변환은 표준 Quiver 카드로는 제공되지 않습니다. Numeric formula와 Time series formula 등은 각각의 카드 출력 계약을 따릅니다.

연산자

숫자 연산은 +, -, *, /와 나머지 연산 %를 지원하며 결과는 배정밀도 숫자입니다. 10 % 7은 3입니다. 괄호로 우선순위를 지정할 수 있습니다.

거듭제곱에는 pow(a, b)를 사용합니다. ^는 거듭제곱이 아닌 비트 XOR입니다.

비교 연산은 ==, !=, >, <, >=, <=이며 Boolean 결과를 만듭니다. 문자열도 ==와 !=로 비교합니다.

논리 AND는 &&, OR는 ||, NOT은 !입니다. 숫자에 대한 비트 연산은 AND &, OR |, XOR ^, NOT ~를 지원합니다. <<는 왼쪽 이동, >>는 부호를 유지하는 산술 오른쪽 이동, >>>는 0으로 채우는 논리 오른쪽 이동입니다.

내장 수학 함수

함수의미
abs(a)절댓값
acos(a)역코사인
acosh(a)역쌍곡코사인
asin(a)역사인
asinh(a)역쌍곡사인
atan(a)역탄젠트
atanh(a)역쌍곡탄젠트
atan2(a, b)사분면을 구분하는 역탄젠트. a는 y좌표, b는 x좌표
cbrt(a)세제곱근
ceil(a)올림
cos(a)코사인
cosh(a)쌍곡코사인
exp(a)자연 지수 함수
floor(a)내림
isfinite(a)무한대도 NaN도 아니면 true
isnan(a)NaN이면 true
ln(a)자연로그
log10(a)밑이 10인 로그
log2(a)밑이 2인 로그
max(a, b, ...)입력값들의 최댓값
min(a, b, ...)입력값들의 최솟값
pow(a, b)a의 b제곱
round(a)가장 가까운 정수로 반올림
signum(a)부호 함수
sin(a)사인
sinh(a)쌍곡사인
sqrt(a)제곱근
tan(a)탄젠트
tanh(a)쌍곡탄젠트

조건과 결측값

조건 ? 참일 때 값 : 거짓일 때 값 형태의 조건 연산자를 사용합니다.

$A > 0 ? $B * 10 : $C * 10

각 시각에서 $A가 양수이면 $B * 10, 그렇지 않으면 $C * 10을 선택합니다.

숫자형 M 열이 NaN일 때 K 열로 대체하려면 NaN 검사 함수를 사용합니다.

isnan(@M) ? @K : @M

return으로 평가를 일찍 끝내고 값을 반환할 수 있습니다. skip은 해당 평가에서 값을 반환하지 않도록 하며, 시계열에서는 점을 제외하는 데 사용할 수 있습니다.

변수 선언과 대입

var로 변수를 선언하고 =로 값을 대입합니다. 변수는 배정밀도 숫자, Boolean 또는 문자열을 담을 수 있습니다. 지수 표기의 e와 E는 같은 방식으로 해석합니다.

var a = 6;
var b = 3.14159;
var c = 1.602e-19;
var d = 1.602E-19;

var boolean_example = true;
boolean_example = false;
var string_example = "high";
string_example

이 예제의 최종 결과는 문자열 high입니다. 이후의 각 예제는 독립적인 변수 범위를 사용합니다.

숫자 식

var a = 2 + 2;
a = 3 * 7;
a = 3.5 / 7;
a = 10 % 7;
a

a는 차례로 4, 21, 0.5와 3이 되고 마지막 값을 반환합니다.

var a = 5 + 3 * 2;
var b = (5 + 3) * 2;
b

a는 11, b는 16입니다.

복합 대입 연산도 사용할 수 있습니다.

var a = 10;
a *= 2;
a += 3;
a -= 5;
a /= 3;
a %= 5;
a

a는 20, 23, 18, 6과 1을 거쳐 최종적으로 1을 반환합니다.

Boolean과 문자열 비교

숫자 비교로 만든 Boolean은 논리 연산으로 조합하거나 !로 반전합니다. 문자열도 같음과 다름을 비교할 수 있습니다.

var a = "high";
var b = "low";
var c = a == a;
var d = a != b;
(c && d) ? "true" : "false"

c와 d는 모두 true이며 최종 결과는 문자열 true입니다.