IniziaInizia gratis

Suddividere l'insieme di dati

In un esercizio precedente, hai stabilito che il numero medio di retweet per tweet è 3,3. In questo esercizio, vedremo quanti tweet sono sopra questa media e quanti sono sotto.

Per farlo, creeremo prima un mapper che verifichi se .x è maggiore di 3.3. Poi precompileremo map_at(), con .at impostato a "retweet_count" e .f che sarà prima il mapper che abbiamo creato e, in un secondo momento, la negazione di questo mapper.

Nota: da quando è stato creato questo corso, il comportamento di purrr è cambiato e, per evitare un conflitto tra l'argomento .f in partial() e .f in map_at(), devi usare l'operatore di quasi-assegnazione := (a volte chiamato "operatore tricheco"). Per lo scopo di questo esercizio, ti basta sapere che := funziona come =, ma indica a partial() che l'argomento va passato a map_at() invece di essere trattenuto da partial() stesso.

Una volta creati questi strumenti, li useremo sull'oggetto non_rt, che è un'estrazione dei "tweet originali" dal dataset rstudioconf.

purrr è già stato caricato per te.

Questo esercizio fa parte del corso

Programmazione funzionale intermedia con purrr

Visualizza il corso

Istruzioni dell'esercizio

  • Crea mean_above, un mapper che verifica se .x è maggiore di 3.3.

  • Precompila due versioni di map_at(): una con "retweet_count" e mean_above, e l'altra con "retweet_count" e la negazione di mean_above.

  • Applica queste due funzioni precompilate a non_rt e conserva solo gli elementi "retweet_count".

  • Ottieni la dimensione dei due risultati.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Create mean_above, a mapper that tests if .x is over 3.3
mean_above <- ___(~ ___)

# Prefil map_at() with "retweet_count", mean_above for above, 
# and mean_above negation for below
above <- partial(___, .at = "retweet_count", .f := ___ )
below <- partial(___, .at = "retweet_count", .f := ___ )

# Map above() and below() on non_rt, keep the "retweet_count"
ab <- ___(non_rt, ___) %>% ___("retweet_count")
bl <- ___(non_rt, ___) %>% ___("retweet_count")

# Compare the size of both elements
___(ab)
___(bl)
Modifica ed esegui il codice