Soustraire des valeurs dans une colonne en fonction de deux autres colonnes dans R

amberluc

J'essaie de soustraire les valeurs d'une colonne en fonction des variables de deux autres colonnes. Cela est rendu plus compliqué car tous les « ID » ne se trouvent pas sur tous les sites avant et après. Voici un exemple de bloc de données :

> time <- c("before", "after", "before", "after", "before", "after", "before")
> site <- c("red", "red","red", "red","green", "green", "blue")
> ID <- c('A','A','B','B','B','B','C')
> cover <- c('10','5','10','5','10','5','3')
> df <- data.frame(time, site, ID, cover)

    time  site ID cover
1 before   red  A    10
2  after   red  A     5
3 before   red  B    10
4  after   red  B     5
5 before green  B    10
6  after green  B     5
7 before  blue  C     3

Vous pouvez voir que 'C' n'apparaît qu'en bleu auparavant. Le résultat ressemblerait à ceci :

   site ID diff
1   red  A   -5
2   red  B   -5
3 green  B   -5
4  blue  C <NA>

J'ai essayé ce code trouvé sur un autre post de débordement de pile avec une question similaire, mais je n'arrive pas à le faire fonctionner.

df_new <- df %>% group_by(time, site, ID) %>% 
summarise(diff = cover[time == c("after")] - cover[time == c("before")])

Une idée où je me trompe?

Merci!

akrun

On peut faire un group by diffà condition de vérifier avec unif/else

library(dplyr)
df %>% 
    group_by(site, ID) %>% 
    summarise(diff = if(length(cover) == 1) NA 
         else diff(cover), .groups = 'drop')

-sortir

# A tibble: 4 x 3
  site  ID     diff
  <chr> <chr> <dbl>
1 blue  C        NA
2 green B        -5
3 red   A        -5
4 red   B        -5

Le code d'origine d'OP ne fonctionne pas car l'un des groupes n'a pas à la fois « après » et « avant » dans « temps ». Nous devrons peut-être spécifier une if/elsecondition pour cela

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

Modifier la valeur d'une colonne dans R en fonction des valeurs de deux autres colonnes

Pivotement des valeurs de ligne dans une colonne en fonction des valeurs de deux autres colonnes

Comment puis-je soustraire des valeurs dans une colonne en fonction des valeurs de plusieurs autres colonnes?

Créer une nouvelle colonne dans R en fonction des conditions de deux autres colonnes

Comment filtrer la valeur dans une colonne en fonction des valeurs d'autres colonnes de R?

Modification des valeurs d'une colonne en fonction de la comparaison de deux autres colonnes dans les pandas

Remplir une nouvelle colonne dans une trame de données avec des valeurs d'une autre, en fonction des valeurs de deux autres colonnes? (Python / Pandas)

Créer une colonne en utilisant en fonction des conditions de deux autres colonnes dans pandas

Créez une nouvelle colonne avec des valeurs en fonction d'autres colonnes - dans R

Remplacer les valeurs dans la colonne en fonction des valeurs dans deux autres colonnes à l'aide de pandas

Compter les instances uniques dans une colonne en fonction des noms de deux autres colonnes

Vérifiez la différence dans une colonne en fonction des valeurs dupliquées dans les deux autres colonnes

agréger une colonne en fonction du nombre de valeurs des autres colonnes dans pyspark dataframe

Somme des valeurs dans une colonne en fonction des valeurs dans d'autres colonnes ; Partie 2

Comment compter une colonne en fonction de deux autres colonnes dans R ?

Créer une nouvelle colonne en fonction de différentes valeurs dans d'autres colonnes R

sélectionner les valeurs des colonnes en fonction de deux autres valeurs d'une autre colonne

Comment ajouter une nouvelle colonne dans le cadre de données des pandas en fonction des valeurs de deux autres colonnes

Comment extraire des valeurs d'une colonne dans le dataframe en faisant correspondre deux autres colonnes dans R

Générer de nouvelles valeurs de colonne en fonction de la comparaison de deux autres colonnes dans R

Comment rendre les valeurs d'une colonne uniques en fonction des valeurs d'autres colonnes dans R ?

Dans R, comment créer une nouvelle colonne à partir des en-têtes de colonnes d'autres colonnes en fonction de leurs valeurs

Codage R Comment ajouter une colonne et la remplir en fonction des valeurs de deux autres colonnes

Division dans une colonne en fonction des valeurs d'autres colonnes dans SQL Server

Soustraire une valeur spécifique en fonction de la valeur de 2 autres colonnes dans R

Comptage des valeurs de colonne en fonction des valeurs d'autres colonnes dans Pandas

Créer une colonne oui/non en fonction des valeurs de deux autres colonnes

ajouter une chaîne à la colonne en fonction des valeurs de deux autres colonnes

Comment attribuer une valeur minimale en fonction des valeurs de recherche dans deux autres colonnes dans pandas?

TOP liste

  1. 1

    Comment exécuter un fichier python avec des droits d'administrateur dans pycharm

  2. 2

    comment obtenir un objet de requête dans les tests unitaires de django?

  3. 3

    mongo kafka connect source

  4. 4

    Vérifier la longueur du nombre à partir du message, puis utiliser la valeur dans l'instruction

  5. 5

    comment convertir une chaîne en un tuple dateutil jour de la semaine sans utiliser eval

  6. 6

    Comment ajouter un texte dans un texte Python/Tkinter

  7. 7

    Aide de variable de débogage pprint jinja2

  8. 8

    Dans les modèles Hugo, comment vérifier la longueur du tableau de fichiers JSON?

  9. 9

    Impression de la longueur du chemin le plus court dans le labyrinthe

  10. 10

    Exécuter la requête externe pour chaque date obtenue à partir de la requête interne

  11. 11

    Recherche de dicton Jinja2 à l'aide d'une clé variable

  12. 12

    Algorithme: diviser de manière optimale une chaîne en 3 sous-chaînes

  13. 13

    Comment obtenir l'intégration contextuelle d'une phrase dans une phrase à l'aide de BERT ?

  14. 14

    définir une propriété pour chaque nœud dans neo4j

  15. 15

    Pourquoi cette requête Java échoue-t-elle? renvoyer 0 quand il y a des résultats

  16. 16

    Comment changer le navigateur par défaut en Microsoft Edge pour Jupyter Notebook sous Windows 10 ?

  17. 17

    Laravel 8: Attempt to read property "id" on null

  18. 18

    Comment obtenir tous les champs d'un objet (y compris sa superclasse), à l'aide de l'API Mirrors de Dart?

  19. 19

    Référencement des assemblys de structure .net 4.7 dans la solution .net core 2

  20. 20

    Microsoft.WebApplication.targets

  21. 21

    obtenir le nombre de marqueur affiché sur la carte

chaudétiquette

Archive