Créez une nouvelle colonne à l'aide de dplyr en fonction des valeurs de chaîne dans toutes les autres colonnes d'une trame de données dans R

café glacé

J'ai une trame de données, my_df:

my_df <- structure(list(C1 = c("A", "X", "X", "A", "A"), F2 = c("A", "A", 
"A", "A", "A"), T3 = c("A", "A", "X", "X", "A"), S4 = c("A", 
"A", "A", "A", "X"), B5 = c("A", "A", "A", "A", "A")), class = "data.frame", row.names = c("ID1", 
"ID2", "ID3", "ID4", "ID5"))

> my_df
    C1 F2 T3 S4 B5
ID1  A  A  A  A  A
ID2  X  A  A  A  A
ID3  X  A  X  A  A
ID4  A  A  X  A  A
ID5  A  A  A  X  A

Je veux créer une nouvelle colonne, new_colqui dit "même" si toutes les valeurs de toutes les autres colonnes sont identiques, sinon elle dit "diff". C'est-à-dire que la trame de données résultante ressemblerait à :

> my_df
    C1 F2 T3 S4 B5 new_col
ID1  A  A  A  A  A    same
ID2  X  A  A  A  A    diff
ID3  X  A  X  A  A    diff
ID4  A  A  X  A  A    diff
ID5  A  A  A  X  A    diff

Quelle est la meilleure façon d'y parvenir en utilisant dplyr?

philiptomk
library(tidyverse)
my_df <- structure(list(C1 = c("A", "X", "X", "A", "A"),
                        F2 = c("A", "A", "A", "A", "A"),
                        T3 = c("A", "A", "X", "X", "A"),
                        S4 = c("A", "A", "A", "A", "X"),
                        B5 = c("A", "A", "A", "A", "A")),
                   class = "data.frame",
                   row.names = c("ID1","ID2", "ID3", "ID4", "ID5"))
my_df %>% 
  rowwise() %>% 
  mutate(new_col = if_else(
    length(unique(c_across())) == 1,
    "same",
    "diff"
  ))
#> # A tibble: 5 × 6
#> # Rowwise: 
#>   C1    F2    T3    S4    B5    new_col
#>   <chr> <chr> <chr> <chr> <chr> <chr>  
#> 1 A     A     A     A     A     same   
#> 2 X     A     A     A     A     diff   
#> 3 X     A     X     A     A     diff   
#> 4 A     A     X     A     A     diff   
#> 5 A     A     A     X     A     diff

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

TOP liste

  1. 1

    comment supprimer "compte de connexion google" à des fins de développement - actions sur google

  2. 2

    J'ai besoin de savoir si ces deux phrases sont les mêmes en programmation

  3. 3

    Microsoft.WebApplication.targets

  4. 4

    Création d'un nouvel objet d'une classe avec un nouveau nom en cliquant sur un bouton dans java swing

  5. 5

    La taille de la forme n'est pas égale à la taille de la cellule du tableau et ajuste le texte à l'intérieur de la forme

  6. 6

    Javascript indiquant "impossible de définir la propriété 'innerHTML' sur null"

  7. 7

    Pourquoi utiliser Asyncio ne réduit pas le temps d'exécution global en Python et n'exécute pas les fonctions simultanément?

  8. 8

    Création d'un rappel python pour une fonction C à partir d'une DLL avec un tampon char.

  9. 9

    Trouver l'intersection et l'union de deux rectangles

  10. 10

    Comment convertir une chaîne en tuple en utilisant `reads`?

  11. 11

    Empêcher l'allocation de mémoire dans la génération de combinaison récursive

  12. 12

    Restauration de la sauvegarde de la base de données SQL Server sur la version inférieure

  13. 13

    Nextcloud avec Docker: impossible de créer ou d'écrire dans le répertoire de données

  14. 14

    Compter combien de fois un nombre apparaît dans un tableau aléatoire

  15. 15

    java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver

  16. 16

    java.lang.NoClassDefFoundError: org / springframework / data / repository / config / BootstrapMode

  17. 17

    Créer un graphique à barres avec une fréquence relative / à partir d'un objet de table dans R

  18. 18

    comment le contrôle de tableau javascript devrait-il être

  19. 19

    Importation bizarre de Google Sheets importxml - Impossible d'obtenir le chemin correct vers les éléments

  20. 20

    Injecter des éléments dans une liste existante au printemps

  21. 21

    Placez le modeBar en haut au centre à l'aide de plotly.js

chaudétiquette

Archive