안녕,
각 열에 대해 새로운 수단 열, 표준 개발 및 CV를 만들기 위해 열을 반복하고 있습니다. 전역 열 통계에 잘 작동하는 아래 스크립트가 있지만 평균 열에서 했던 것처럼 그룹별로 추가하려고 하면 수식이 실패합니다.
기본 테이블로 다시 업데이트된 요약 테이블을 사용하여 동일한 작업을 수행할 수 있다는 것을 깨달았습니다.
감사해요!
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp");
New Column("Old",
Character,
Formula(If(:age>=14,"Old","Young"))
);
colnames = dt << get column names( numeric,string );
For( i = 1, i <= N Items( colnames ), i++,
Eval(
Substitute(
Expr(
New Column( Char( colnames[i] ) || " mean",
Numeric,
Formula(
Col Mean(Column(__colname__),:old)
)
);
New Column( Char( colnames[i] ) || " STD DEV",
Numeric,
Formula(
Col Std Dev(Column(__colname__))
)
);
New Column( Char( colnames[i] ) || " CV%",
Numeric,
Format( "Percent", 2 ),
Formula(
Col Std Dev(Column(__colname__))/
Col Mean(Column(__colname__))
)
);
),
Expr(__colname__),colnames[i]
)
)
);JMP에서는 Column() 함수만 사용하는 데 문제가 있는 것 같습니다.그러나 As Column() 함수는 문제를 해결합니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Column( "Old", Character, Formula( If( :age >= 14, "Old", "Young" ) ) );
colnames = dt << get column names( numeric, string );
For( i = 1, i <= N Items( colnames ), i++,
Eval(
Substitute(
Expr(
New Column( Char( colnames[i] ) || " mean",
Numeric,
Formula( Col Mean( as Column( __colname__ ), :old ) )
);
New Column( Char( colnames[i] ) || " STD DEV",
Numeric,
Formula( Col Std Dev( as Column( __colname__ ) ) )
);
New Column( Char( colnames[i] ) || " CV%",
Numeric,
Format( "Percent", 2 ),
Formula( Col Std Dev( as Column( __colname__ ) ) / Col Mean( as Column( __colname__ ) ) )
);
),
Expr( __colname__ ), colnames[i]
)
)
);
Substitute() 함수를 사용하고 있으므로 As Column() 또는 Column() 함수를 제거하고 __colname__을 :theactualcolumnname의 실제 열 참조로 바꿀 수도 있습니다. 아래를 참조하세요
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Column( "Old", Character, Formula( If( :age >= 14, "Old", "Young" ) ) );
colnames = dt << get column names( numeric, string );
For( i = 1, i <= N Items( colnames ), i++,
Eval(
Substitute(
Expr(
New Column( Char( colnames[i] ) || " mean",
Numeric,
Formula( Col Mean( __colname__ , :old ) )
);
New Column( Char( colnames[i] ) || " STD DEV",
Numeric,
Formula( Col Std Dev( __colname__ ) )
);
New Column( Char( colnames[i] ) || " CV%",
Numeric,
Format( "Percent", 2 ),
Formula( Col Std Dev( __colname__ ) / Col Mean( __colname__ ) )
);
),
Expr( __colname__ ), Parse( ":" || colnames[i] )
)
)
);