안녕하세요.하나의 열을 세 개의 새 열로 분할하고 원래 열의 문자열 조각을 세 개의 새 열 중 하나에 배치하려고합니다. 텍스트의 맥락에 따라.열에 대한 텍스트가 일부 구분 기호를 기반으로 문자열을 구문 분석한다는 것을 이해하지만 이것이 필요한 위치를 얻지 못합니다.텍스트를 읽고 특정 키워드 (년, 월 또는 일)를 확인한 다음 해당 열에 문자열 ( "년", "월"또는 "일"앞에 오는 숫자 값)을 배치하는 함수가 필요합니다. . word () 함수가 첫 번째 단어 나 값을 외삽 할 수 있고 이것은 시작이 될 것이지만 값은 여전히 텍스트를 기반으로하는 세 개의 잠재적 인 열 중 하나에 배치되어야합니다. 누구든지 이것을 코딩하는 방법에 대한 생각이 있습니까?아니면 잠재적 인 해결 방법에 대한 아이디어?어떤 통찰력이라도 대단히 감사합니다.
열 1이 현재 형식의 데이터를 표시하고 열 2-4가 이상적인 상태 인 경우 첨부 된 예입니다.감사합니다!
스테파니
이를 처리하는 한 가지 방법이 있습니다.
Names Default To Here( 1 );
dt = New Table( "Example dt",
Add Rows( 10 ),
Set Header Height( 46 ),
New Column( "Age",
Character,
"Nominal",
Set Selected,
Set Values(
{"2-day old", "43-day old", "3-day old",
"3-month old", "4-month old", "5-day old",
"32-day old", "13-year old", "10-year old",
"10-month old"}
)
)
);
dt << New Column( "AgeYears" );
dt << New Column( "AgeMonths" );
dt << New Column( "AgeDays" );
For( i = 1, i <= N Rows( dt ), i++,
Match( Word( 2, :Age[i], "- " ),
"day",
:AgeDays[i] =
Num( Word( 1, :age[i], "- " ) ),
"month",
:AgeMonths[i] =
Num( Word( 1, :age[i], "- " ) ),
"year",
:AgeMonths[i] =
Num( Word( 1, :age[i], "- " ) )
)
);너무 굉장해 고마워 헉헉 !이 코드는 데이터를 정리하는 데 걸리는 시간을 크게 줄여 줄 것입니다. 답변 해 주셔서 감사합니다. 빠른 질문 : 새 변수를 만든 다음 원래 dt로 다시 병합하는 대신 새 변수를 기존 dt에 직접 포함하는 방법이 있습니까?
스테파니