Visualizzazione dei risultati da 1 a 2 su 2

Discussione: linguaggio r problema

Visualizzazione discussione

  1. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,780
    Ciao, non conosco R ma ho fatto qualche prova su questo editor per analizzare la logica del tuo codice e cercare di capire cosa non va.
    Sono arrivato alla conclusione che in quella condizione stai eseguendo un confronto tra i valori di quell'oggetto (giornimalattia) mentre dovresti farlo tra i relativi nomi.

    nell'output non compaiono "Lav_2" e "Lav_11", come voluto dal problema,ma non ci sono nemmeno "Lav_10" e "Lav_3". Perchè succede cio?
    Questa la condizione:
    codice:
    if(giornimalattia[i]!=giornimalattia["Lav_2"] & giornimalattia[i]!=giornimalattia["Lav_11"])
    .
    che tradotto in italiano significa:
    codice:
    se il valore giornimalattia[i] non è uguale al valore giornimalattia["Lav_2"] e il valore giornimalattia[i] non è uguale al valore giornimalattia["Lav_11"]
    .
    Analizzando questa condizione nel contesto del ciclo avviene questo:

    iterazione 1 -> se 2 non è 0 e 2 non è 7 (VERO) quindi stampa Lav_0
    iterazione 2 -> se 2 non è 0 e 2 non è 7 (VERO) quindi stampa Lav_1
    iterazione 3 -> se 0 non è 0 e 0 non è 7 (FALSO) quindi escludi Lav_2
    iterazione 4 -> se 0 non è 0 e 0 non è 7 (FALSO) quindi escludi Lav_3
    iterazione 5 -> se 5 non è 0 e 5 non è 7 (VERO) quindi stampa Lav_4
    iterazione 6 -> se 8 non è 0 e 8 non è 7 (VERO) quindi stampa Lav_5
    ecc.

    Capisci da te che la logica è sbagliata. Se vuoi escludere gli elementi in base ai loro nomi dovrai appunto confrontarne i nomi e non i valori.

    Come andrebbe modificato il mio codice, affinchè compaiono giorni di malattia di tutti i lavoratori eccetto "Lav_2" e "Lav_11".
    Ripeto, non conosco R ma da qualche veloce ricerca una soluzione potrebbe essere impostare la condizione in un modo del genere:
    codice:
    if( names(giornimalattia)[i] != "Lav_2" && names(giornimalattia)[i] != "Lav_11")
    Vedi se può andare, poi magari ci possono essere anche dei metodi più opportuni (pensando ad altri linguaggi di programmazione) per eseguire direttamente un filtro su una lista di elementi.
    Ultima modifica di KillerWorm; 06-12-2018 a 00:32
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.