Je suis relativement nouveau à R et j'ai besoin de créer une fonction dans laquelle après chaque appel, une trame de données lui aura ajouté une autre ligne.Fonction qui lie de nouvelles lignes dans R
C'est ce que la trame de données vide doit être (aka titre de ses lignes):
Percent Category Word
La fonction est
output <- function(category, word)
qui à la fin de calculer un pour cent à partir de ces mots.
Ainsi, par exemple, la catégorie (Lung, femelle) génèrerait un pour cent de 51, et donc la trame de données résultant serait
Percent Category Word
51 Lung Female
Si je devais exécuter à nouveau la fonction avec, disons que la catégorie (Blood , Homme), dont 71 pour cent est je voudrais que le dataframe résultant soit
Percent Category Word
51 Lung Female
71 Blood Male
et je veux essentiellement pour exécuter la fonction autant de fois que je ne voudrais, annexant des lignes en continu. Cependant, la base de données est seulement locale et non globale, donc quand j'exécute la fonction et que je produis la base de donnée, cette ligne apparaît dans la console mais rien n'apparaît dans mon environnement global. Voilà ce que j'ai (en omettant le début de la fxn qui calcule pour cent):
output <- function(category, word)
{
row <- data.frame(percent, category, word)
# row <- rbind(row, row) # I don't know...
return (row)
}
Étant donné que la fonction calcule une variable pour cent, comment pourrais-je créer une trame de données accessible à partir de l'environnement mondial où cette fonction ajoute des lignes à il? Dois-je créer une base de données dans l'environnement global, puis l'essayer?
ca vous le faire en dehors de la fonction avec 'df <- rbind (df, sortie ("poumon", "Femme"))' – HubertL
@ suggestion de HubertL devrait fonctionner, mais l'ajout de rangs un par un est souvent beaucoup plus lent dans R que dans les autres approches. Si vos données sont suffisamment importantes pour que vous rencontriez des problèmes de vitesse avec cette approche, vous pouvez probablement poser une nouvelle question demandant de l'aide pour l'améliorer. – Marius