Tengo una pregunta relativamente simple que mis colegas y yo no puedo averiguar. Tengo un vector de valores que me gustaría pegar en todos de las filas en el conjunto de datos dentro de un cierto rango de columnas.

El siguiente código funciona si puedo asignar valores de fila por fila:

data[1, 1:10] <- myvector
data[2, 1:10] <- myvector

Si yo intento de asignar valores sobre el número total de filas, el mismo código no funciona correctamente:

data[1:nrows(data), 1:10] <-myvector

Parece que los valores en el vector se llenan en forma vertical, y no horizontal. El mejor que he venido para arriba con una solución, que no es lo ideal, dado que tengo de 20.000 filas en mis datos.

for (i in 1:nrow(data)){
     data[i, 1:10] <-myvector
}

Debe haber alguna explicación más simple de lo que está mal. Por favor ayuda!

InformationsquelleAutor roody | 2012-07-11

1 Comentario

  1. 8

    La asignación de un vector a una matriz como la que se llena en forma vertical, como se observa. Pero usted puede evitar esto mediante la asignación de la correspondiente vector:

     data[, 1:10] = rep(myvector, each=NROW(data))
    • Muchas gracias! Trabajó como un encanto 🙂

Dejar respuesta

Please enter your comment!
Please enter your name here