使用分组列获取唯一值的公式列使用大型数据集(10 万行)获取唯一值的简单列公式是什么?这可能吗?
例如,查看汽车.jmp 。分布平台已经给出了级别数(唯一元素),但我找不到能够计算这些的公式列。
制作柱子-->37级(不同制造商)。
这通常被称为基数、不同值或唯一值的数量。
该公式应该能够使用组列,这样我们就可以得到每个制造商的型号数量。
我们有丰田,价值将是 11 款车型。三菱 6 款车型,等等。
例如,在 JMP Query Builder 下这也是可能的。

选择 t1.Make,COUNT(DISTINCT t1.Model) 作为“Count DISTINCT-Model”
来自 Cars t1
按 t1 分组。制作;
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Cars.jmp" );
Distribution(
Nominal Distribution( Column( :Make ) ),
Nominal Distribution( Column( :Model ) ),
Local Data Filter(
Add Filter(
columns( :Make ),
Where( :Make == "Toyota" ),
Display( :Make, N Items( 15 ), Find( Set Text( "" ) ) )
)
),
SendToReport(
Dispatch( {"Make"}, "Frequencies", OutlineBox, {Close( 1 )} ),
Dispatch( {"Model"}, "Distrib Nom Hist", FrameBox,
{Frame Size( 110, 178 )}
)
)
);
基础数据分析与建模数据混合和清理数据探索与可视化回复:使用分组列获取唯一值的公式列这是我的疯狂解决方案

As Constant(
t1 = Current Data Table();
Query(
t1,
"
SELECT t1.Make, COUNT(DISTINCT t1.Model) AS 'Count DISTINCT-Model'
FROM Cars t1
GROUP BY t1.Make;"
);
newdt = Current Data Table();
makeList = newdt:Make << get values;
countMat = Column( newdt, 2 ) << get values;
Close( newdt, nosave );
);
countMat[Contains( makeList, t1:make )];
回复:使用分组列获取唯一值的公式列即将推出:
Col N 类别 - 以及所有其他类别......
回复:使用分组列获取唯一值的公式列我认为这可能会提供正确的结果
Col Sum(Row() == Col Min(Row(), :Model, :Make), :Make)
但目前我最有可能选择“摘要”->“更新”,而不使用公式
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Cars.jmp");
// Formula option
newcol = dt << New Column("R", Numeric, Ordinal, Formula(
Col Sum(Row() == Col Min(Row(), :Model, :Make), :Make)
));
// Summary + update
dt_summary = dt << Summary(
Group(:Make),
N Categories(:Model),
Freq("None"),
Weight("None"),
statistics column name format("stat of column"),
private
);
// Update data table
dt << Update(
With(dt_summary),
Match Columns(:Make = :Make),
Add Columns from Update Table(:N Categories of Model),
Replace Columns in Main Table(:N Categories of Model)
);
Close(dt_summary, no save);回复:使用分组列获取唯一值的公式列现已推出:
