0
votes

Combiner avec () et ggplot2

J'utilise la fonction 'avec ()' de la base R et je me demande s'il peut être combiné avec 'ggplot2'. Si j'utilise l'intrigue de base, je fais: xxx

Approche analogique avec GGPLOT échoue: xxx

Je suppose que c'est parce que "avec ()" Il suffit simplement de «Terrain (A, B) 'to' Too» (DF $ A, DF $ B) 'mais' ggplot () 'ne fonctionne pas si nous ne fournissons pas d'argument de données (au moins pas de cette manière). Est-ce bon ou pouvons-nous en quelque sorte utiliser "avec" et "ggplot2" ensemble?


Certains commentaires demandent pourquoi je veux faire cela et voici pourquoi. J'écris une fonction assez générale qui comprend avec () et j'ai mis des fonctions varues avec (), comme moyenne (), SD (), SD () AMD ainsi de suite. GGPLOT () est juste une autre fonction que je souhaite réussir à mettre à la creule ma fonction qui inclut de savoir comment mettre ggplot () dans (). Jusqu'à présent, ma fonction pourrait émettre des fichiers de données et d'autres objets, je sais maintenant comment mettre des objets ggplot via ma fonction. Je n'ai pas inclus cela dans ma question pour le garder simple.


7 commentaires

Je ne comprends pas pourquoi vous essayez d'utiliser avec () ici. GGPLOT a déjà un paramètre un paramètre pour que vous puissiez passer dans les données. Lorsque la valeur vient de. Que pensez-vous que vous pouvez faire avec avec () que vous ne pouvez pas faire avec ggplot () seul?


Si vous êtes inquiet de la stabilité des forfaits obligatés, vous devez utiliser une solution comme renv ou packrat pour maintenir un environnement stable plutôt que de vous limiter à utiliser avec


De plus, si vous êtes préoccupé par la stabilité du paquet, l'API principale de GGPLot2 ( GGPLOT (données, AES (x, y)) ) a été inchangé pendant de nombreuses années maintenant et ne changera certainement jamais. Les idiomes modernes du développement R s'appuient sur le style d'évaluation que GGPLot utilise, totalement suppliant l'utilisation de avec () , que je n'ai pas utilisé dans 6 ou 7 ans.


@MRFLICK J'écris une fonction qui inclut avec () et peut mettre de nombreux objets cependant. Ainsi, pour examiner, je peux mettre un data.frame bien que ma fonction et obtenir les données de sortie souhaitées. Ceci n'est pas possible avec GGPLOT car la sortie n'est pas une source de données mais une parcelle. La bonne chose est que maintenant ma fonction peut générer divers objets, y compris GGPLOT.


@Richard Vous êtes peut-être vrai si nous parlons de la question telle qu'elle se trouve, mais je construis en fait une fonction assez générale qui comprend (). La fonction peut produire divers objets et cela fonctionne très bien jusqu'à présent. Je ne sais pas si les alternatives que vous suggérez de travailler dans mon contexte.


@Brian Non, je ne suis pas inquiet pour les premiers arguments de GGPLot () de changer. Je veux utiliser avec () dans une fonction générale qui fait des choses comme appliquer des fonctions par groupe et ainsi de suite. Ma fonction utilise avec () et génère divers objets. Je ne veux pas inclure quelque chose de Tidyverse comme group_by (), muté () et ainsi de suite dans ma fonction.


@Drumy merci. En plus de la circonstance que l'approche est peut-être en état de réflexion commune si je partagerais toute l'upease. Je mets toutes sortes de fonctions avec () dans mon code, moyenne (), sd (), ... ggplot () est juste une autre qui maintenant je peux passer cependant.


4 Réponses :


0
votes

Nous pouvons utiliser le %>%>% xxx

Entrez la description de l'image ici


1 commentaires

Merci je suis au courant des solutions DLYR, mais je veux éviter de l'utiliser car j'ai peur des changements dans les paquets. Par conséquent, j'essaie d'utiliser plus de fonctions de base qui sont censées être plus stables au fil du temps. Pour le moment, je m'habitue à ().



1
votes
library(ggplot2)
ggplot(df, aes(a, b)) + geom_point()

1 commentaires

Merci. S'il vous plaît voir mon édition: ma question est maintenant plus explicitement à propos de la fonction ().



2
votes

Vous pouvez utiliser qplot () qui est conçu pour être similaire à la base tracé () syntaxe et son data argument n'est pas nécessaire. xxx


0 commentaires

3
votes

Votre code ne fonctionne pas car le premier argument de ggplot () est data . Vous devez dire spécifiquement que vous souhaitez utiliser l'argument mappage . xxx

ou vous pouvez faire ce xxx p> La deuxième méthode fonctionne car le premier argument pour geom _ * est mappage .


0 commentaires