Para una primera aproximación, si está utilizando un bucle for
en R, lo está haciendo mal.
Hay dos preguntas diferentes que podría estar haciendo.
- ¿Cómo devuelvo una lista de valores únicos en los que he realizado una operación?
- ¿Cómo modifico valores únicos de una lista en su lugar?
Supongo que pretendías lo primero. Aquí hay un ejemplo.
- ¿Hay algún algoritmo de clasificación que sea sustancialmente más rápido que QuickSort?
- ¿Existe algún algoritmo simple que pueda resolver la programación del taller?
- ¿Puede un gráfico en el que los pesos de los bordes no son necesariamente distintos tener más de un MST? Si es así, da un ejemplo. Si no, justifíquelo.
- ¿Existe algún estándar de algoritmo de programación de elevadores públicos?
- ¿Qué hace exactamente node = node-> next en una lista vinculada?
> x <-runif (100000)
> longitud (único (x))
[1] 99997
x
es una lista de 100k números aleatorios, de los cuales 99997 son únicos.
Dupliquemos todos los valores únicos usando un bucle for.
> inicio <-proc.time (); lista_unica <- única (x); doubled_list <- NULL; for (i en unique_list) {doubled_list <- c (doubled_list, 2 * i)}; detener <-proc.time ()
> parada-inicio
sistema de usuario transcurrido
13.887 9.337 23.283
Ok, ¿podemos hacerlo mejor?
> inicio <-proc.time (); doubled_list <- sapply (unique (x), function (i) 2 * i); detener <-proc.time ()
> parada-inicio
sistema de usuario transcurrido
0.061 0.010 0.077
Eso es dos órdenes de magnitud más rápido.