8
votes

Supprimer les colonnes avec la même valeur d'un Dataframe

J'ai une image de données comme celle-ci xxx pré>

Je veux supprimer toutes les colonnes de la même valeur, c'est-à-dire k, donc mon résultat sera comme celui-ci P>

1    1    1    1    
2    1    2    1   
3    8    3    1  
4    8    2    1  
1    1    1    1 
2    1    2    1  


1 commentaires

Si la solution est-elle compte pour les caractères numériques et les facteurs?


4 Réponses :


4
votes

Pour sélectionner des colonnes avec plus d'une valeur, quel que soit le type: xxx

?

(OOPS, la question de Roman a raison - cela pourrait assommer votre colonne 5 De plus)

Peut-être ( édition : merci à des commentaires!) xxx

ou xxx


2 commentaires

Votre sous-ensemble ne fonctionne pas pour moi. Peut-être d [! isfac | Longueur unique! = 1] ?


... Je "rappelez-vous" (? Sous-ensemble ) maintenant, sous-ensemble fonctionne sur lignes . Pour contourner cela, on devrait spécifier sélectionner explicitement, donc sous-ensemble (D, SELECT =! ISFAC | Longueur de vue> 1) . @ user976991, essayez ça.



2
votes

Une autre façon de le faire consiste à utiliser la fonction d'ordre supérieur filtre code>. Voici le code

to_keep <- function(x) any(is.numeric(x), length(unique(x)) > 1)
Filter(to_keep, d)


0 commentaires

3
votes

Voici une solution qui fonctionnera pour supprimer toutes les colonnes répliquées (y compris, par paires de caractères répliquées, de colonnes numériques ou de facteurs). C'est comme ça que j'ai lu la question de l'OP, et même si c'est une erreur erronée, cela ressemble également à une question intéressante. XXX


0 commentaires

2
votes

solution onLiner.

df2 <- df[sapply(df, function(x) !is.factor(x) | length(unique(x))>1 )]


0 commentaires