J'ai un data.frame Par conséquent, ma «puissante> Sortie souhaitée forte> est de savoir combien des études ont seulement voici ce que je essayé mais sans succès: p> sous-ensemble () Code> J'essaie de sortir Etude.Names code> (une colonne dans le fichier data.frame) qui n'ont que 1 code> S pour variable post code> et non 2 code> ou 3 code>. post == 1 code>, sans post == 2 code> ou 3 code>. p>
3 Réponses :
Si vous recherchez uniquement les enregistrements Ceci reviendrait p> Le nombre d'études que 1 valeurs est alors: p> 1 CODE> 1 CODE>, vous pouvez vérifier si le nombre de 1 code> éléments dans post code> égal du nombre de lignes d'un data.frame code>. uniquement_1 <- SOPLLY (m, fonction (x) somme (x $ post == 1) == nrow (x)) code > p>
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
Existe-t-il un moyen d'utiliser sous-ensemble code> par hasard?
sous-ensemble code> 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 code> fonction avec une logique supplémentaire.
la manière dont vous utilisez le sous-ensemble code> code> recherche un objet nommé Un moyen facile de le faire consiste à construire une condition logique avec POST code> dans votre environnement global, mais cela n'existe pas car il est juste une colonne dans le Données. sapply code> Utilisation de la fonction Toutes code>, puis sous-ensemble la liste de la manière suivante: p> < Pré> xxx pré> p>
df code> est le nom de l'argument de la fonction, il devrait définitivement exécuter