回复:无需辅助列就可以直接获取匹配数据吗?我不确定我是否完全了解您要做什么。作为一个具体示例,您是否要确定数据表中13岁男性的人数并将其放入一列,而不创建年龄和性别串联列?如果那是您想要的,我认为此公式列将起作用:

请注意,此公式仅计算数据表中非缺失条目的数量。在这种情况下,我选择按年龄和性别来计算“名称”列中不丢失条目的数量。不需要中间列或新表。
回复:无需辅助列就可以直接获取匹配数据吗?我尚未测试此代码,但是您至少应该看到我采用的方法,并且该方法可以工作。
Names Default To Here( 1 );
dtBig = Data Table( "Big Class" );
dtSmall = Data Table( "Big Class By (age, sex)" );
dt << New Column( "N Rows" );
For( i = 1, i <= N Rows( dtSmall ), i++,
foundRows = dtBig << get rows where(
Substr( :agesex[i], 1, Length( :agesex[i] ) - 1 ) == :age & Substr( agesex[i], -1 ) == :sex
);
If( N Rows( foundRows ) > 0,
dtBig:N Rows[foundRows] = dtSmall:N Rows[i]
);
);
回复:无需辅助列就可以直接获取匹配数据吗?谢谢吉姆!
代码没有运行。

回复:无需辅助列就可以直接获取匹配数据吗?好吧,JMP找不到小的数据表。从我的主要提交中可以看到,小型数据表的数据表名称称为“按年龄,性别划分的大类”。不是正确的名称,或者该数据表不再存在。只需将数据表引用的名称更改为要在其上运行脚本并运行它的表即可。回复:无需辅助列就可以直接获取匹配数据吗?我已经对其进行了多次修改,但仍然没有解决方案。
继续寻求您的帮助。谢谢吉姆!回复:无需辅助列就可以直接获取匹配数据吗?试试这个
names default to here(1);
// Create the 2 Example data tables
dtBig = open("$SAMPLE_DATA/big class.jmp");
dtSmall = New Table( "Data agesex",
Add Rows( 12 ),
New Column( "agesex",
Character,
"Nominal",
Set Values(
{"12F", "12M", "13F", "13M", "14F", "14M", "15F", "15M", "16F", "16M",
"17F", "17M"}
)
),
New Column( "N Rows",
Numeric,
"Continuous",
Format( "Fixed Dec", 12, 0 ),
Set Values( [5, 3, 3, 4, 5, 7, 2, 5, 2, 1, 1, 2] )
)
);
// Create the new column
dtBig << New Column( "N Rows" );
// Move the data as required
For( i = 1, i <= N Rows( dtSmall ), i++,
foundRows = dtBig << get rows where(
Num( Substr( dtSmall:agesex[i], 1, Length( dtSmall:agesex[i] ) - 1 ) ) == :age &
Substr( dtSmall:agesex[i], -1 ) == :sex
);
If( N Rows( foundRows ) > 0,
dtBig:N Rows[foundRows] = dtSmall:N Rows[i]
);
);回复:无需辅助列就可以直接获取匹配数据吗?谢谢吉姆!
dtSmall
dtBig = Open( "$SAMPLE_DATA/big class.jmp" );
dtSmall = dtBig << Summary(
Group( :age, :sex ),
Freq( "None" ),
Weight( "None" ),
Link to original data table( 0 ),
statistics column name format( "column" )
);
c1 = Column( 1 ) << Get Name;
c2 = Column( 2 ) << Get Name;
dtSmall << Add Multiple Columns( c1 || c2, 1, after( As Column( 2 ) ), Character, "Nominal" );
Wait( 0 );
Column( 3 ) << Formula( Char( :age ) || :sex );
dtSmall << run formulas;
Column( 3 ) << deleteFormula;
dtSmall << delete columns( 1 :: 2 );
可以在没有辅助列的情况下直接获取匹配数据吗?例如,使用“ Big class.jMP”的“ age”列和“ sex”列组合在另一个表上生成新的列名。
如何直接通过“年龄”和“性别”列匹配另一张表的数据,而不在大表中添加辅助列?
谢谢!
脚本编写