다음 테이블 1(특정 이벤트가 있는 시계열, ~2000 데이터 포인트) 및 2(기간 및 진폭 데이터가 있는 시계열, ~1,000,000 데이터 포인트)를 3과 같은 테이블로 병합하고 싶습니다.
1:
| 타임스탬프 | 이벤트 |
| 20:23:56:962 | 이벤트 |
| 20:24:14:964 | B 이벤트 |
| ... | ... |
2:
시간 [s] | 진폭 |
| 0 | -0.000457764 |
| 0.0000625 | 0.0642700195 |
| ... | ... |
삼:
| 타임스탬프 | 시간 [s] | 이벤트 | 진폭 |
| 20:23:56:962 | 0 | 이벤트 | -0.000457764 |
| 20:23:56:962 | 0.0000625 | | 0.0642700195 |
| 20:23:56:962 | 0.000125 | | 0.0927124023 |
| ... | ... | | ... |
| 20:24:14:964 | 18.002 | B 이벤트 | -0.013092041 |
| ... | ... | ... | ... |
당신의 도움에 매우 감사할 것입니다.
이것이 도움이 될지는 모르겠지만 다음은 타임스탬프 값(정의한 타임스탬프 열이 문자 열이라고 가정함)을 가져와서 숫자 열로 변환하는 스크립트입니다.그런 다음 새 열을 시간 열과 비교하여 데이터를 종합할 수 있습니다.

names default to here(1);
// Create the sample data table
dtEvent = New Table( "Events",
Add Rows( 2 ),
New Column( "timestamp",
Character,
"Nominal",
Set Values( {"20:23:56:962", "20:24:14:964"} )
),
New Column( "event",
Character,
"Nominal",
Set Values( {"A event", "B event"} )
)
);
// put in a time delay so one can see the initial data table
wait(5);
// Create a numeric version of the timestamp data
dtEvent << New Column( "Numeric timestamp",
Format(
"Custom",
Formula(
Char( Hour( value ) ) || ":" || Char( Minute( value ) ) || ":" ||
Char( Floor( Second( value ) ) ) || ":" || Word(
2,
Char( Round( Second( value ), 3 ) ),
"."
)
),
20
),
formula(
Num( Word( 1, :timestamp, ":" ) ) * 3600 + Num( Word( 2, :timestamp, ":" ) ) * 60
+Num( Word( 3, :timestamp, ":" ) ) + Num( "." || Word( 4, :timestamp, ":" ) )
)
);죄송합니다. 충분히 명확하게 설명하지 못했습니다. 테이블 1의 이벤트 A를 테이블 2의 시간 지속 시간 0s와 연결하여 두 테이블을 동기화하고 싶습니다.
따라서 이벤트 A의 타임스탬프를 표 2의 각 행의 시간 기간 값에 추가한 다음 모든 후속 이벤트를 각각의 "합성된" 타임스탬프와 연결해야 합니다.
감사해요. 이 경로를 따르면 일치하는 열이 필요하지만 두 테이블의 시간 형식이 다릅니다. 하나는 밀리초(hh:mm:ss:sss)를 포함하는 비정상적인 타임스탬프이고 다른 하나는 초 단위의 기간 값(기간 특정 타임스탬프(예: 이벤트)에서 시작합니다.
내 목표는 모든 기간 값에 대해 타임스탬프가 있는 열을 통합하는 것입니다. 기간 값을 밀리초로 반올림하는 것을 피하고 싶습니다. 이렇게 하면 데이터 무결성이 줄어들기 때문입니다. 그러나 마이크로초를 포함하는 이상한 타임스탬프 형식을 처리하는 방법을 잘 모르겠습니다. 당신이 어떤 제안이 있다면, 나는 매우 감사할 것입니다.