Foro de debate

Crear nuevos elementos cambiando ciertas letras del código

Re: Crear nuevos elementos cambiando ciertas letras del código

de Manuel Muñoz Márquez -
Número de respuestas: 0

Buenas, Joan:

  1. Una primera cuestión es sobre el uso de print. La función print no admite como argumentos varios objetos a imprimir. Si se deben imprimir varias cosas se debe usar una función print para cada una de ellas. Además añade un retorno de línea al final automáticamente al final de cada salida.
    La función cat permite imprimir varias cosas de una vez, siempre que sean de tipos simples. Por otra parte, los retornos de línea deben añadirse explícitamente usando la cadena "\n".
  2. Por otro lado, en R, cuando se aplica el operador * a dos vectores el resultado es un vector cuyos elementos son el producto de los elementos de los dos uno a uno. ¿Es esto lo que quieres calcular? Si quieres usar el producto matricial de vectores el operador es %*%
  3. Dado que has definido IA no puedes acceder a I['A']. Puesto que lo primero, IA es una variable, mientras que la variable I no está definida. Esto tiene al menos dos posibles soluciones, una es definir la variable, que sería un vector, con sus respectivos índices en hoteles o la que te propongo abajo.

No estoy seguro de si lo que quieres calcular es lo que he puesto, pero tal vez te sirva para encontrar el modo de hacerlo.

for (i in hoteles) {
    for (j in hoteles){
        pi <- get(paste0('I', i))
        if (i!=j) {
            pj <- get(paste0('I', j))
            cat("pi[", i, "][", j, "] =", sum(pi*pj*probmuestra), "\n")
        }
    }
}

Un saludo