목록에 식을 삽입하려는 첫 번째 섹션은 아래 코드 줄로 쉽게 해결할 수 있습니다.
insert into( newlist, name expr( name_arg ) );
다음 섹션을 해결하기 위해!
작동할 스크립트의 두 번째 부분, 상호 작용 용어가 있는 부분을 얻었습니다!
</CODE></PRE><P> </P><PRE><CODE class=" language-jsl">for( a = 1, a <= N items( collist2 ), a++,
// Empty arg to identify cols by names
name_arg = Expr( column() );
name_arg2 = Expr( column() );
// For whatever the match below, the result must be added to newlist2
// Regex works, as per regex101.com
if( !contains( collist2[a], "*" ), insert into( name_arg, eval insert( collist2[a] ) );
insert into( newlist2, name expr( name_arg ) ), // single term insert, refer to basic needs flow above
insert into( name_arg, eval insert( regex( collist2[a], "^(.*)\*(.*)$", "\1" ) ) ); // Breaks apart 1st group to insert into column()
insert into( name_arg2, eval insert( regex( collist2[a], "^(.*)\*(.*)$", "\2" ) ) ); // Breaks apart 2nd group to insert into column()
insert into( newlist2, Eval Expr( expr( name_arg )*expr( name_arg2 ) ) );
);
);
show( newlist2 );
Output:
newlist2 = {Column("Col 1"), Column("Col 2"), Column("Col 3"), Column("Col 4"), Column("Col 5"), Column("Col 1") * Column("Col 2"), Column("Col 2") * Column("Col 4"), Column("Col 5") * Column("Col 5")};이것이 표현 조작을 배우는 다른 사람들을 안내하는 데 도움이 되기를 바랍니다. 긴 여정이지만 강력하고 가치가 있습니다! 
안녕하세요,
표현 조작 작업을 배우고 있는데 머리를 감싸는 데 어려움을 겪고 있습니다.
아래 코드의 첫 번째 섹션에서 문자열 열 이름을 column() 표현식에 성공적으로 삽입할 수 있지만 생성된 표현식을 목록에 삽입할 수 없습니다.
두 번째 섹션은 상호 작용 용어(이것은 SLS의 효과 목록임)를 분해하고, 자체 column() 표현식에 삽입하고, 상호 작용 용어로 다시 결합한 다음 목록에 삽입합니다.이 섹션은 작동하지 않습니다.
누구든지 유용한 팁이 있거나 식 조작이 어떻게 작동하는지에 대해 내가 오해하고 있는 것을 본 사람이 있습니까?미리 감사드립니다!
이름의 기본값은 here(1)입니다. // 아래에 기본적으로 필요하지만 단일 열 이름에만 작동합니다. collist = { "Col 1", "Col 2", "Col 3", "Col 4", "Col 5" }; 새 목록 = {}; for( i = 1, i <= N items(collist), i++, // 이름으로 열을 식별하기 위한 빈 인수 name_arg = Expr( column() ); insert into( name_arg, eval insert( collist[i] ) ); // 결과: column("Col 1") 또는 다른 열 삽입 <-- 의도한 대로 작동 show( name_arg ); // 성공적인 insert into 표시 insert into( newlist, insert into( name_arg, eval insert( collist[i] ) ) ); // 중첩된 삽입이 작동하지 않음 // 첫 번째 삽입의 결과를 newlist에 삽입해야 함 ); 표시( 새 목록 ); // 현재 빈 목록 표시 //////////////////////////////////////// 작동하지 않음 , BELOW // 고급 흐름 - 상호작용 감지 collist2 = { "Col 1", "Col 2", "Col 3", "Col 4", "Col 5", "Col 1*Col 2", "Col 2*Col 4", "열 5*열 5" }; 새 목록2 = {}; for( a = 1, a <= N items( collist2 ), a++, // 이름으로 열을 식별하기 위한 빈 인수 name_arg = Expr( column() ); // 아래 일치 항목에 대해 결과는 newlist2에 추가되어야 합니다. // 정규식은 regex101.com에 따라 작동합니다. if( !contains( collist2[a], "*" ), insert into( name_arg2, eval insert( collist2[a] ) ), // 단일 용어 삽입, 기본 요구사항 참조 flow above insert into( name_arg2, eval insert( regex( collist2[a], "^(.*)\*(.*)$", "\1" ) ) ); // 첫 번째 그룹을 분해하여 열에 삽입 () insert into( name_arg2, eval insert( regex( collist2[a], "^(.*)\*(.*)$", "\2" ) ) ); // 두 번째 그룹을 분리하여 열에 삽입 () // 아래 줄은 첫 번째 그룹과 두 번째 그룹을 상호 작용 용어로 함께 결합하는 모형입니다. 작동하지 않습니다. //eval expr( expr( insert into( name_arg2, eval insert( regex( mylist2[a], "^(.*)\*(.*)$", "\1" ) ) )*insert into( name_arg2, eval insert( regex( mylist2[a], "^(.*)\*(.*) $", "\2" ) ) ); ) ); Desired_output = { 열("열 1"), 열("열 2") , column("열 3"), column("열 4"), column("열 5"), column("열 1")*column("열 2"), column("열 2")*column ("열 4"), column("열 5")*column("열 5") };