모두 안녕
한 번 했고, 고통스러웠지만 대본과 기억을 잃어버렸어요. 내가하려는 일 아래 :
Tweak_List = dt_Temp << Get Column Names("String");
for(i = 1, i <= N 항목(Tweak_List),i++,
a = 왼쪽(Tweak_List[i], 길이(Tweak_List[i]) - 1) || "Δ";
b = Tweak_List[i];
c = 왼쪽(Tweak_List[i], 길이(Tweak_List[i]) - 2);
dt << New Column( Left(Tweak_List[i], Length(Tweak_List[i]) - 1) || "Δ", Numeric, Continuous, Formula( if(:name1 == :name2, c - b, 0 ))));
);
dt에는 ColName_2 및 ColName이라는 열이 있고 Tweak_List는 ColName_2와 같은 열 이름 목록입니다.
ColName_이라는 새 델타 열을 만들어야 합니다. △ 각 쌍에 대해 ColName - ColName_2 공식이 있으면 조건이 충족됩니다.
나는 Eval and Co와 함께 일했던 것을 기억하지만 잊었습니다. 제발 도와주세요
평소와 같이 마침내 하나의 솔루션을 얻었고 보다 효율적인 스크립트로 자유롭게 재생할 수 있었습니다.
For(i = 1, i <= N Items(Tweak_List), i++,
Eval(
Eval Expr(
dt << New Column(Left(Tweak_List[i], Length(Tweak_List[i]) - 1) || "Δ",
Numeric,
"Continuous",
Formula(
If(:ENTITY == :ENTITY_2,
As Column(Expr(Char(Left(Tweak_List[i], Length(Tweak_List[i]) - 2)))) - As Column(Expr(Char(Tweak_List[i]))),
0
)
)
)
)
);
);
Left() 대신 Word() 또는 Words()를 사용할 수 있습니다.
Names Default To Here(1);
dt = New Table("Untitled 143",
Add Rows(1),
Compress File When Saved(1),
New Column("Column1", Numeric, "Continuous", Format("Best", 12), Set Values([1])),
New Column("Column1_2", Numeric, "Continuous", Format("Best", 12), Set Values([2])),
New Column("Column2", Numeric, "Continuous", Format("Best", 12), Set Values([3])),
New Column("Column2_2", Numeric, "Continuous", Format("Best", 12), Set Values([4]))
);
tweaklist = {"Column1_2", "Column2_2"};
For Each({col_name}, tweaklist,
Eval(EvalExpr(
dt << New Column(Word(1, col_name, "_") || "_Δ", Numeric, Continuous, Formula(
Expr(Name Expr(As Column(col_name))) - Expr(Name Expr(As Column(Word(1, col_name, "_"))))
));
));
);
또한 수식이 필요하지 않고 값만 필요한 경우 << 무거운 평가가 필요하지 않은 각 값 설정을 사용할 수 있습니다.
For Each({col_name}, tweaklist,
dt << New Column(Word(1, col_name, "_") || "_Δ", Numeric, Continuous, << Set Each Value(
As Column(col_name) - As Column(Word(1, col_name, "_"))
));
);