if else 안에 포함에 대한 도움말안녕,
목록에 문자가 포함되어 있는지 여부를 확인하고 그에 따라 몇 가지 단계를 수행하는 다음 코드를 작성했습니다.
어떤 이유로 스크립트는 "포함하는 경우" 조건을 확인하지 않고 항상 else 부분을 실행합니다. 여기서 어리석은 실수가 있는 것 같습니다.
Clear Symbols();
Delete Symbols();
clear globals();
dtNext = Open("C:\temp\output.csv","invisible");
Summarize(dtNext, testlist = By(:test));
show(testlist );
SAVEPATH = "C:\temp\";
If(contains(testlist ,"M"),
Macrodt=New Table("test_type",
New Column("test_type",
Character,
Nominal,
Set Values( {"Morning"})
),
invisible
);
, //else
Macrodt=New Table("test_type",
New Column("test_type",
Character,
Nominal,
Set Values( {"Evening"})
),
invisible
);
);
//Save macro file
Macrodt<<SAVE></SAVE>
Re: if else 안에 포함하는 도움말나는 cocncatitems 기능을 사용했고 작동했습니다.
감사해요
Re: if else 안에 포함하는 도움말처럼 @제프_퍼킨슨 더 많은 정보가 도움이 될 것이라고 제안하지만 혼란의 원인이 될 수 있다고 생각되는 것을 찌르겠습니다. "포함" 기능은 목록 또는 문자열에서 사용할 수 있습니다. 목록 항목에 특정 문자가 포함되어 있는지 여부를 찾고 있는 경우 "If" 문은 작성된 대로 원하는 결과를 생성하지 않습니다. 그것이 당신의 의도라면 "If" 문에서 "testlist" 변수를 Concat Items 함수로 둘러쌀 수 있습니다. 즉, Concat Items(testlist)는 함께 연결된 모든 목록 항목으로 구성된 단일 문자열로 평가됩니다. 이제 포함 기능은 새 문자열에 특정 문자가 있는 경우 특정 문자를 찾을 때 긍정적인 응답을 반환합니다.
도움이 되었기를 바랍니다.
Re: if else 안에 포함하는 도움말코드에 명백한 실수가 없습니다. 혼란이 있는 위치를 파악하는 데 도움이 되는 몇 가지 세부 정보가 필요합니다.
다음은 프로토타입이 올바른지 보여주는 예입니다.
dts = {"$SAMPLE_DATA\Fitness.jmp", "$SAMPLE_DATA\Big Class.jmp"};
For( i = 1, i <= N Items( dts ), i++,
dtNext = Open( dts[i] );
Summarize( dtNext, testlist = By( :age ) );
Show( testlist );
If( Contains( testlist, "42" ),
Show( "testlist contains 42" );
, //else
Show( "testlist doesn't contain 42" )
);
);
일지:
/*:
testlist = {"38", "40", "42", "43", "44", "45", "47", "48", "49", "50", "51", "52", "54", "57"};
"testlist contains 42";
testlist = {"12", "13", "14", "15", "16", "17"};
"testlist doesn't contain 42";