Problemas con una versión de R (o algo) asignando variables de una fila de un bucle

9 views
Skip to first unread message

JJ Merelo

unread,
Aug 1, 2015, 12:27:04 PM8/1/15
to gur...@googlegroups.com
Esto funcionaba perfectamente en uno de mis ordenadores

for ( i in 1:nrow(ips.time) ) {
    ips.time[i,]$howmany <- length(ips.time[ips.time$IPs==ips.time[i,]$IPs,]$milliseconds)
}

Pero ahora en el R 3.0.2 que llevo en el portátil no va. ¿Alguna pista? Se trata de asignar a cada fila una variable adicional con un contaje de elementos que tengan el mismo valor de esa fila (para colorear un gráfico más adelante).

Gracias por la ayuda y felices vacaciones (para los que no tengan que acabar un paper)

--
JJ

Israel Blancas

unread,
Aug 3, 2015, 5:20:40 AM8/3/15
to Grupo de usuarios de R de la UGR
¿Qué fallo lanza?

Supongo que es en la asignación en sí.

¿De qué tipo es ips.time?

Si es, por ejemplo, un data frame, podrías generar un vector, añadir los elementos del vector dentro del bucle y asignarlo como columna al data frame.

Algo así
aux<-c() #Creo vector vacío

for ( i in 1:nrow(ips.time) ) {

    aux<-append(aux, length(ips.time[ips.time$IPs==ips.time[i,]$IPs,]$milliseconds))
}

 ips.time["howmany"]<-aux


Creo que, en caso que "ips.time" sea otro tipo de dato (una tabla, por ejemplo), lo único que cambiaría sería la asignación final

Anna Sáez de Tejada Cuenca

unread,
Aug 3, 2015, 5:20:40 AM8/3/15
to Grupo de usuarios de R de la UGR
Lo de ips.time es una variable que tu has creado o es de algun paquete? Estoy intentando ejecutarlo pero no sabe lo que es.

(Perdon por la ausencia de tildes)

JJ Merelo

unread,
Aug 3, 2015, 5:21:36 AM8/3/15
to gur...@googlegroups.com
Es algo que yo he creado. El problema parece ser que no se pueden crear variables así por las buenas... Creándola de antemano y reasignándole valor funciona.

--
Has recibido este mensaje porque estás suscrito al grupo "Grupo de usuarios de R de la UGR" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a gur-ugr+u...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a gur...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/gur-ugr.
Para acceder a más opciones, visita https://groups.google.com/d/optout.



--
JJ
Reply all
Reply to author
Forward
0 new messages