Modo de cálculo para datos de cadena con agrupaciónIntenté calcular la moda de la columna A, agrupada por la columna B, utilizando elCol Mode(:A,:B)función. Sin embargo, como la columna A contiene datos de cadena, no se generó ningún valor. Entonces descubrí queMode(:A)Puedo obtener la moda incluso para datos de cadena. El problema ahora es que no sé cómo realizar la agrupación. ¿Cómo debo construir la fórmula?
Automatización y scriptingRe: Modo de cálculo para datos de cadena con agrupación¿Necesitas una fórmula o sólo el resultado?
Re: Modo de cálculo para datos de cadena con agrupaciónGracias por tu respuesta, jthi.
Necesito una fórmula. Me gustaría escribirla en una tabla de datos.
Re: Modo de cálculo para datos de cadena con agrupaciónProbablemente lo más sencillo sería crear una nueva columna donde conviertas tus valores numéricos (Recodificar -> Etiquetas a Códigos) y usarla para el cálculo. Luego, puedes usar Copiar Propiedades de Columna para mover la propiedad de columna "Valores de Etiqueta".
Además, crea un elemento de lista de deseos Col Mode() para admitir columnas de caracteres
Re: Modo de cálculo para datos de cadena con agrupaciónEntonces, significa que se requiere un paso adicional. Entiendo. Me gustaría solicitar que Col Mode() admita columnas de cadena. Muchas gracias.
Re: Modo de cálculo para datos de cadena con agrupaciónPuedes crear un elemento de la lista de deseos aquí . Por ejemplo, puedes crear un flujo de trabajo o un script para encargarte de ese paso adicional.
Probablemente también sea posible con una fórmula, pero no tengo idea de su eficiencia. Esto debería obtener la moda de :sexo sobre :edad.
As Constant(
score_indices = Associative Array(:sex) << get keys
);
score_indices[Col Mode(Col Score(:sex), :age)]

Re: Modo de cálculo para datos de cadena con agrupaciónPublicaré una lista de deseos allí, gracias.
¿Cómo creaste la columna "S"? ¡Me interesa la idea!
Re: Modo de cálculo para datos de cadena con agrupaciónProporcioné la fórmula para S (requiere JMP19).
Re: Modo de cálculo para datos de cadena con agrupación// データテーブルを取得
dt = Current Data Table();
// B列のユニークな値を取得(グループ化のため)
unique_groups = As List(dt:B<< Get As Matrix);
// 新しい列 "mother" を作成
dt << New Column("mother", Character, "Nominal");
// 各グループごとに処理を実行
For(i = 1, i <= N Items(unique_groups), i++,
// 現在のグループをフィルタリング
current_group = unique_groups[i];
Show(current_group);
subset_rows = As List(dt << Get Rows Where(:B == current_group));
Show(subset_rows);
Show(Type(subset_rows));
// A列のキーを取得
score_indices = dt:A[subset_rows] << Get As List;
Show(score_indices);
// グループ内の "mother" 列を更新
dt:mother[subset_rows] = If(
Is Missing(score_indices[Col Mode(Col Score(dt:A[subset_rows]))]),
score_indices[2],
score_indices[Col Mode(Col Score(dt:A[subset_rows]))]
);
);
Los valores únicos de la columna B se extraen y se utilizan para procesar cada grupo.
Sin embargo, esto generará un error: " Necesita ingresar un objeto programable para enviar".
Si tienes alguna idea, por favor házmelo saber.
Re: Modo de cálculo para datos de cadena con agrupación// データテーブルを取得
dt = Current Data Table();
// B列のユニークな値を取得(グループ化のため)
unique_groups = As List(dt:B<< Get As Matrix);
// 新しい列 "mother" を作成
dt << New Column("mother", Character, "Nominal");
// 各グループごとに処理を実行
For(i = 1, i <= N Items(unique_groups), i++,
// 現在のグループをフィルタリング
current_group = unique_groups[i];
Show(current_group);
subset_rows = As List(dt << Get Rows Where(:B == current_group));
Show(subset_rows);
Show(Type(subset_rows));
// A列のキーを取得
score_indices = Associative Array(Set Unique(dt:A[subset_rows])); Show(score_indices);
// グループ内の "mother" 列を更新
dt:mother[subset_rows] = If(
Is Missing(score_indices[Col Mode(Col Score(dt:A[subset_rows]))]),
score_indices[2],
score_indices[Col Mode(Col Score(dt:A[subset_rows]))]
);
);
Esto ha resuelto el problema hasta el punto de obtener la clave para la columna A.
Lo siento por las molestias, jthi.
Re: Modo de cálculo para datos de cadena con agrupación// データテーブルを取得
dt = Current Data Table();
process_nm = "A";
// B列のユニークな値を取得(グループ化のため)
unique_groups = dt:B << Get values;
// 新しい列 "mother" を作成
dt << New Column("mother", Character, "Nominal");
// 各グループごとに処理を実行
For(i = 1, i <= N Items(unique_groups), i++,
// 現在のグループをフィルタリング
current_group = unique_groups[i];
subset_rows = dt << Get Rows Where(:B == current_group);
// A列のキーを取得
score_indices = Associative Array(Set Unique(Column(process_nm)[subset_rows])) << get keys;
// グループ内の "mother" 列を更新
dt:mother[subset_rows] = Mode(Column(process_nm)[subset_rows]);
);
Modo de cálculo para datos de cadena con agrupación
- Col Mode() no admite cadenas
・Mode() admite cadenas
・Mode() no admite la agrupación
【contramedida】
1. Trate las cadenas como números y utilice el modo Col().
2. Filtre las filas con anticipación y utilice Mode().
Re: Modo de cálculo para datos de cadena con agrupaciónUn deseo en este sentido:
:folded_hands: Resumen y tabulación: agregar opción de agregación para columnas de caracteres
Una vez implementada la función, podrá utilizar la función Tablas/Resumen para esta tarea.