0
votes

Sous-formulation d'une liste de données.Fammes basées sur une variable dans R

J'ai un data.frame ici < / fort>. Utilisation de sous-ensemble () J'essaie de sortir Etude.Names (une colonne dans le fichier data.frame) qui n'ont que 1 S pour variable post et non 2 ou 3 .

Par conséquent, ma «puissante> Sortie souhaitée est de savoir combien des études ont seulement post == 1 , sans post == 2 ou 3 .

voici ce que je essayé mais sans succès: xxx


0 commentaires

3 Réponses :


1
votes

Si vous recherchez uniquement les enregistrements 1 1 , vous pouvez vérifier si le nombre de 1 éléments dans post égal du nombre de lignes d'un data.frame .

uniquement_1 <- SOPLLY (m, fonction (x) somme (x $ post == 1) == nrow (x))

Ceci reviendrait xxx

Le nombre d'études que 1 valeurs est alors: xxx


0 commentaires

4
votes

Votre premier problème est que sous-ensemble code> ne fonctionne pas sur des listes telles que vous vous attendez à ce que vous vous attendez.

D %>% group_by(study.name) %>% summarise(only_1=all(post==1))
# study.name only_1
# <fct>      <lgl> 
#   1 ""         NA    
# 2 Bit.KnoA   FALSE 
# 3 Bit.KnoB   FALSE 
# 4 ChandlerA  TRUE  
# 5 Mubarak    FALSE 
# 6 Sheen      FALSE 
# 7 Shin.Ellis FALSE 
# 8 Trus.Hsu   TRUE 

D %>% group_by(study.name) %>% summarise(only_1=all(post==1)) %>% summarise(tot=sum(only_1, na.rm = T))
# A tibble: 1 x 1
# tot
# <int>
#   1     2


2 commentaires

Existe-t-il un moyen d'utiliser sous-ensemble par hasard?


sous-ensemble est utilisé pour filtrer les données.frames, vecteurs ou matrices, mais pas les listes. Vous pourriez le faire, mais il serait compliqué et nécessiterait toujours un * Appliquer fonction avec une logique supplémentaire.



1
votes

la manière dont vous utilisez le sous-ensemble recherche un objet nommé POST dans votre environnement global, mais cela n'existe pas car il est juste une colonne dans le Données.

Un moyen facile de le faire consiste à construire une condition logique avec sapply Utilisation de la fonction Toutes , puis sous-ensemble la liste de la manière suivante: < Pré> xxx


1 commentaires

df est le nom de l'argument de la fonction, il devrait définitivement exécuter