안녕하세요 ,
변수 유형을 사용하여 ID당 여러 행에서 하나의 변수(type2)를 생성하려고 합니다. 다음과 같은 테이블을 숨기고 싶습니다.
에게:
여기서 type2는 다음과 같습니다.
유형이 항상 A이면 type2=A;
유형이 항상 B이면 type2=B;
type이 A와 B의 조합이면 type2=C;
감사해요
안녕하세요,
테이블이 :ID 및 :type으로 정렬된 것 같습니다. 정렬하거나 정렬하려는 경우 이를 활용하고 :type2 열에 대해 (상대적으로) 간단한 수식을 사용할 수 있습니다.
If( :type[Col Min( Row(), :ID )] == :type[Col Max( Row(), :ID )],
:type,
"C"
)
건배,
브래디
이를 수행하는 여러 가지 방법. ID에 유형이 몇 번 나타나는지 계산하고 데이터에 ID가 나타나는 양과 같으면 유일한 유형임을 알 수 있습니다.
수식 요약:
Names Default To Here(1);
dt = New Table("From",
Add Rows(8),
New Column("ID", Numeric, "Nominal", Format("Best", 12), Set Values([1, 1, 1, 2, 2, 3, 3, 3])),
New Column("type", Character(16), "Nominal", Set Values({"A", "A", "B", "A", "A", "B", "B", "B"}))
);
dt_summary = dt << Summary(
Output table("To"),
Group(:ID),
N(:type),
Subgroup(:type),
Freq("None"),
Weight("None"),
statistics column name format("column"),
Link to original data table(0)
);
dt_summary << New Column("type2", Character, "Nominal",
<< Set Each Value(
If(:"type, A"n == 0, "B",
:"type, B"n == 0, "A",
"C"
)
)
);그리고 중복 행 선택과 함께 Col Sum을 사용하는 다른 방법:
Names Default To Here(1);
dt = New Table("From",
Add Rows(8),
New Column("ID", Numeric, "Nominal", Format("Best", 12), Set Values([1, 1, 1, 2, 2, 3, 3, 3])),
New Column("type", Character(16), "Nominal", Set Values({"A", "A", "B", "A", "A", "B", "B", "B"}))
);
dt << New Column("type2", Character, Nomimal, Formula(
If(Col Sum(1, :ID) == Col Sum(1, :ID, :type),
:type,
"C"
)
));
wait(1);
dt:type2 << Delete Formula;
wait(1);
dt << Select Duplicate Rows(Match(:ID, :type2));<BR />wait(1);<BR />dt << Delete Rows;기능, 특히 Col Sum에 대한 자세한 내용은 Scripting Index를 참조하십시오.