es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo agregar filas a un marco de datos anidado?

Tengo un objeto de la siguiente estructura, que no es muy común para mí (con un dataframe dentro de un dataframe con una lista en él). Quiero agregar nuevas observaciones, que tienen los mismos valores para todas las variables (excepto uno); aquí los valores provienen de una lista extra a través de un índice). La estructura anidada del objeto hace que sea difícil hacer esto con un bucle.
Por lo tanto, copié la salida de dput e ingresé valores en ella. Usé principalmente la función rep() y una vez unlist(). Al ejecutarlo e imprimir el objeto, recibo un mensaje de advertencia sobre un dataframe corrupto y el objeto no ha cambiado.

¿Cuál es la forma común de agregar filas a una estructura dada?
Intenté hacer un bucle sobre él, pero aún no he tenido éxito.

deput(x)

structure(list(collapsed = c(FALSE, FALSE, FALSE), enabled = c(TRUE, 
TRUE, TRUE), id = c("Bilateral", "AlphaTree", "Merge"), parameters = structure(list(
    bands = list(c(1L, 2L, 3L, 5L), c(1L, 2L, 3L, 5L), NULL), 
    intensity = c(3L, NA, NA), saveToDisk = c(FALSE, NA, NA), 
    Strategy = c(NA, "maxDiff", NA), Attribute = c(NA, 
    "", NA), om = c(NA, 27L, NA), Condition = c(NA, NA, 
    "num < 10"), check = c(NA, NA, FALSE), ite = c(NA, 
    NA, 10L), Algo = c(NA, NA, "closest mean")), class = "data.frame", row.names = c(NA, 
3L)), type = c("PreProc", "Seg", "Op")), class = "data.frame", row.names = c(NA, 
3L))
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    La forma común de agregar filas a una estructura dada, como un dataframe, es usar la función rbind().

    En este caso, dado que el objeto tiene una estructura anidada con una lista dentro de un dataframe, podría requerir manipulación adicional antes de agregar nuevas filas. Una posible solución podría ser crear una nueva fila en la lista dentro del dataframe de parámetros, y luego unirla al dataframe padre usando rbind(). Sin embargo, aún podría ser necesario recorrer la estructura anidada.

    No se recomienda copiar la salida de dput() e ingresar los valores manualmente, ya que puede introducir errores y dañar la estructura del objeto, como se ve en el mensaje de advertencia.

    Para agregar filas a un dataframe con una estructura anidada, es mejor usar funciones incorporadas o crear funciones personalizadas que puedan manejar la complejidad de la estructura.

Comments are closed.