¿Necesitas ayuda con For loop?Hola, tengo una mesa como esta y lo que quiero hacer es:
-> Para cada fila, haga un + -1 a X y + -1 a Y, tome la mediana de esos cuatro valores de Edad y guárdelo en una nueva columna. ¿Puede ayudarme alguien, por favor?
X Y Edad
-1 2 27
2 -1 23
4 5 56
-7 -4 43
Re: Necesito ayuda con For loopMuchas gracias, gran ayuda!
Re: Necesito ayuda con For loopSe adjunta una tabla de datos de muestra, con las 4 columnas nuevas, con sus fórmulas, y la columna Mediana, con su fórmula. A continuación se muestra un ejemplo de las fórmulas que coloqué en la tabla de datos. Esta es la fórmula de la columna X-1, Y
dt = Current Data Table();
TheRow = Row();
Xval = :X - 1;
Yval = :Y;
MyRows = dt << get rows where( :X == Xval & :Y == Yval );
If( N Rows( MyRows ) > 0,
TheResult = dt:Age[MyRows[1]]
);
Re: Necesito ayuda con For loopEso es correcto, de esa manera obtenemos cuatro valores de Age diferentes de las cuatro combinaciones de coordenadas diferentes.
Re: Necesito ayuda con For loopEstoy buscando más especificaciones. Para un caso dado donde X = 3 e Y = -1, está buscando el valor de la columna Age, donde X = X-1, e Y no cambia: usando su pequeña tabla de muestra
: Edad ==> donde (X == 2 e Y == - 1) ==> 23
¿Es esto lo que estás buscando?
Re: Necesito ayuda con For loop @ rk1988 :
Lo sentimos, en realidad no cumpliendo con sus requisitos aquí. Si introduce un sesgo en las variables "X" e "Y" como ha explicado, los valores en la columna "Edad" no se verán afectados. Age1 to Age4 y su media es fija a menos que el sesgo se introduzca en Age.
Y ese medio puede ser adquirido por:
Col Mean(:Age) ;
Disculpas que no puedo seguir, le gustaría demostrar lo que quiere en una hoja de Excel manualmente, por lo que puede ser más claro.
Re: Necesito ayuda con For loopGracias por su respuesta
Déjenme aclarar ...
Por cada fila:
1. agregue 1 a X, ahora vaya a esa fila con las coordenadas (X + 1, Y) y tome el valor de la edad -> esta es la variable Age1
2. sustraer 1 de X, ahora ve a esa fila con las coordenadas (X-1, Y) y toma el valor de la edad -> esta es la variable Age2
3. agregue 1 a Y, ahora vaya a esa fila con las coordenadas (X, Y + 1) y tome el valor de la edad -> esta es la variable Age3
4. sustraer 1 de Y, ahora ve a esa fila con las coordenadas (X, Y-1) y toma el valor de la edad -> esta es la variable Age4
5. Calcule la mediana de Edad1 ... 4 y guárdela en una nueva columna
Repita los pasos para cada fila ...
Re: Necesito ayuda con For loop @ rk1988 :
Supongamos que su tabla se llama "dt"
El siguiente fragmento de código debe sumar y restar 1 a X e Y como nuevas columnas.
dt << New Column("AddXBias",Numeric,Continuous,Formula(:X+1))
<< New Column("SubXBias",Numeric,Continuous,Formula(:X-1))
<< New Column("AddYBias",Numeric,Continuous,Formula(:Y+1))
<< New Column("SubYBias",Numeric,Continuous,Formula(:Y-1)); Ahora, la pregunta es ¿de qué columnas quiere tomar la media?
Si es solo la columna de edad, esto debería hacerlo.
AgeMean = Col Mean(:Age);
Si hay otros valores, proporcione una dirección clara sobre qué valores y trataré de ayudar