Compare los valores en la misma columna y agregue el resultado en una segunda columna en R

JaviLarry

Estoy comparando valores en la misma columna para diferentes filas y, dependiendo del valor, quiero dar un resultado. Debajo de la mesa. Tengo los ID y quiero obtener los valores de la columna "Resultado". La columna "Lo que tengo" es lo que obtengo de mi función. Condiciones para los resultados: si el ID (n) es diferente del ID de la fila anterior (n-1), entonces el Resultado (n) es A. Si el ID (n) es el mismo que en el ID de la fila antes y diferente de la siguiente fila (n + 1), el resultado (n) es C.Otros casos es B.

l <- ifelse ((df$ID[1:(nrow(df)-1)] != df$ID[2:(nrow(df)+0)]),print("A"),
ifelse(((df$ID[1:(nrow(df)-1)] == df$ID[2:(nrow(df)+0)]) & (df$ID[2:(nrow(df)+0)] != df$ID[3:(nrow(df)+1)])), print ("C"),print ("B")))

    df
    ID Result What I have
1   12   A       A
2   13   A       A
3   14   A       A
4   15   A       B
5   15   B       B
6   15   B       B
7   15   B       B
8   15   B       C
9   15   C       A
10  16   A      NA
11  17   A      NA

Muchas gracias por adelantado

LyzandeR

Usando leadfrom dplyry ifelsepuedes hacerlo de esta manera:

library(dplyr)
df$Result <- ifelse(df$ID != lag(df$ID) | is.na(lag(df$ID)), 'A',
                    ifelse(df$ID == lag(df$ID) & df$ID != lead(df$ID), 'C', 'B' ))

Producción:

> df
   ID Result
1  12      A
2  13      A
3  14      A
4  15      A
5  15      B
6  15      B
7  15      B
8  15      B
9  15      C
10 16      A
11 17      A

Algunas palabras para aclarar: lagdesplaza la columna en 1 fila mientras que leadhace exactamente lo contrario, es decir, retrocede la columna en 1 fila. Compruébalo lag(df$ID)y lead(df$ID)para visualizarlo.

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Compare los valores en una fila y escriba el resultado en una nueva columna

Agregue condicionalmente valores a una nueva columna y reemplace los valores en la columna de acondicionamiento en R

Compare los valores de una columna en la tabla A y otra columna en la tabla B

Compare valores en 2 columnas y genere el resultado en una tercera columna en pandas

Complete los valores en una columna de una fila en particular con el valor de la misma columna de otra fila según una condición en la segunda columna en Pandas

Recorra los datos de columnas específicas y agregue el resultado como una nueva columna en R

Compare el valor en la misma columna en R

Haciendo diccionario en diccionario para separar datos por los mismos valores en una columna y luego desde la segunda columna

mysql: ¿puedo seleccionar valores de la misma columna y mostrarlos en el resultado de 2 columnas?

Recorra datos de columnas específicas y agregue el resultado como una nueva columna en R

Escriba los valores de columna en el archivo con el valor coincidente de la segunda columna en R

Tome valores únicos de una columna y agregue cada uno en una columna única en la misma fila que "por" en data.table

Hive seleccione una columna basada en una segunda columna donde los valores de la segunda columna son diferentes

Agregue una nueva fila sobre la base de los valores de columna en R

R: agregar los valores en una [fila, columna] solo si el valor es verdadero en dos filas dentro de la misma columna

R: recorrer las columnas, seleccionar el valor de una columna y escribirlo en una nueva columna en la misma fila

Agregue dos valores diferentes en la misma columna de csv

Agregar valores de una columna a otra con valores perdidos en la segunda columna usando R

Verifique si la cadena en una columna está contenida en la cadena de otra columna en la misma fila y agregue una nueva columna con el nombre de la columna correspondiente

Verifique si la cadena en una columna está contenida en la cadena de otra columna en la misma fila y agregue una nueva columna con el nombre de la columna coincidente

Compare cada cadena de fila de las columnas y agregue la condición para evaluar e imprimir el resultado en una nueva columna

Para crear una columna Sumando los valores de otra columna en la misma vista

Busque en una columna un valor y devuelva los valores concatenados de una segunda columna en las filas correspondientes

Hojas de cálculo de Google: compare dos columnas de hoja y agregue los valores no coincidentes en la primera columna

Compare los valores de fila con la columna en el marco de datos para una coincidencia parcial usando R

Compare los valores de fila con la columna en el marco de datos para una coincidencia parcial usando R

¿Itera sobre dos columnas y cuenta cuántos valores en una columna coinciden con los valores exactos en la segunda columna?

¿Itera sobre dos columnas y cuenta cuántos valores en una columna coinciden con los valores exactos en la segunda columna?

Aplicar filtro en una columna y replicar los valores en otra columna para el mismo filtro

TOP Lista

CalienteEtiquetas

Archivo