2010-07-24 5 views
1

J'ai reçu le code ci-dessous et il continue à imprimer les tableaux de fréquence. Comment puis-je l'empêcher de faire cela.Comment est-ce que j'arrête ce morceau de code R d'imprimer la sortie?

pl = read.csv("c:/pl.csv") 
freqs = function(name){ assign(name, table(pl[,name],pl$bad_outcome), envir = .GlobalEnv);} 
lapply(names(pl), freqs); 
+0

Probablement pas ici le cas, mais la fonction 'invisible' est utilisée pour supprimer l'impression. –

Répondre

2

Vous avez trois options:

1) Affecter la sortie, puisque ce que vous voyez comme « l'impression » est en fait un retour.

x <- lapply(names(pl), freqs) 

2) utiliser la fonction l_ply dans plyr.

library(plyr) 
l_ply(names(pl), freqs) 

3) Ne pas faire l'assign à l'intérieur du lapply, mais le faire plus tard avec attach:

x <- lapply(names(pl), function(name) table(pl[,name],pl$bad_outcome)) 
attach(x) 
+0

En ce qui concerne 3), sachez que 'attach (object)' doit être utilisé avec précaution. L'utiliser à plusieurs reprises peut causer des problèmes, sans l'utilisation appropriée de 'detach (objet)' – nullglob

Questions connexes