你好呀,
我有一张包含一些列的表,例如“HIGH”和“SMART”,并且有三个可选值:“0”,“1”和“无”。
我想创建一个描述每一行的新列。
例如,如果第一行的“HIGH”和“SMART”列中有“1”,则新列应包含“HIGH, SMART”。
如何使用列公式来实现这一点?
谢谢。
如果你有这样的桌子

你可以使用公式
vals = {};
If(:H == "1", Insert Into(vals,"H"));
If(:S == "1", Insert Into(vals,"S"));
Concat Items(vals, ", ");

还有许多其他方法可以实现这一点
What you describe is almost the application case of 合并列 with the setting Selected Columns are Indicator Columns.
但会对None提出抱怨。
要解决该问题,请删除 None 值 - 通过重新编码或将列转换为数字数据类型:
dt = New Table( "test",
Add Rows( 5 ),
New Column( "H",
Character,
Set Values( {"None", "1", "0", "1", "1"} )
),
New Column( "S",
Character,
Set Values( {"1", "0", "1", "None", "1"} )
)
);
:H << Set Data Type( Numeric );
:S << Set Data Type( Numeric );
dt << Combine Columns(
columns( :H, :S ),
Column Name( "summary" ),
Delimiter( "," ),
Selected Columns are Indicator Columns( 1 )
);