2017-04-27 1 views
2

테이블에 날짜 열을 추가하려고합니다. 그래서 업데이트를하고 각 날짜에 오늘 날짜를 추가하고 싶습니다.KDB 길이가 n 인 벡터를 만드는 방법

http://www.timestored.com/b/forums/topic/add-a-column-to-a-table-kdb/ 

링크를 따라 가면 업데이트되지만, 오늘 날짜로 채워진 길이 계산 테이블의 벡터를 만드는 방법을 찾을 수 없습니다. 소리가 너무 간단해서이 작업을 수행 할 방법을 찾을 수 없으므로 도움을 주셔서 감사합니다.

답변

4

'테이크'기능 #을 사용할 수 있습니다. 예 :

q)length:10 
q)length#.z.d 
2017.04.27 2017.04.27 2017.04.27 2017.04.27 2017.04.27 2017.04.27 2017.04.27 2017.04.27 2017.04.27 2017.04.27 

정기적으로 업데이트 할 수도 있습니다. 예 : 제임스가 언급 한 바와 같이 업데이트하면

q)t 
s p 
----- 
IBM 1 
IBM 1 
IBM 1 
q)update dt:.z.d from t 
s p dt 
---------------- 
IBM 1 2017.04.27 
IBM 1 2017.04.27 
IBM 1 2017.04.27 
+0

오 그래, 그 벡터도 필요 없다 ... 멋지다. 감사합니다 – chrise

+0

@ james-little에 동의합니다. 간단히'update dt : .z.d from t' 메쏘드를 사용하십시오; 벡터를 잘라서 추가 할 필요가 없습니다. – davidcrossey

4

는/다음 KDB가 자동으로 필요한 길이의 벡터로 원자를 켜집니다 원자를 사용하여 테이블의 열을 생성합니다.

q)tab:([] col1:`a`b`c;col2:1 2 3) 
q)update date:.z.d from tab 
col1 col2 date 
-------------------- 
a 1 2017.04.27 
b 2 2017.04.27 
c 3 2017.04.27 

이것은 또한 문자열이나 이런 일이되지 않습니다 다른 중첩 된 구조에 대한

q)flip (1 2 3;`a) 
1 `a 
2 `a 
3 `a 

그러나 플립 발생합니다. 이 경우에는 수동으로 벡터를 생성해야합니다.

q)update str:count[i]#enlist "hello" from tab 
col1 col2 str 
----------------- 
a 1 "hello" 
b 2 "hello" 
c 3 "hello" 
관련 문제