2016-09-02 2 views
1

Disons que j'ai une fonction intégrée dont le code est très long, donc je veux compter le nombre de lignes dans la fonction et afficher juste partie du code en fournissant la gamme de nombres à une fonction.Compte le nombre de lignes dans une fonction intégrée, extrait la plage de lignes en spécifiant des nombres

Pour voir combien de lignes sont là dans une fonction, je fonction tail(), qui affiche les numéros en face de chaque ligne

tail(XYZ_Function) 

J'ai essayé d'utiliser la combinaison head() et tail(), à savoir laisse dire que je veux partir lignes 145 à 150 d'une fonction, donc je l'ai fait

tail(head(XYZ_Function,n=150),n=5) 

y at-il fonction disponible en R et en plus d'utiliser head()tail() en combinaison où je peux fournir obj ect name, et deux nombres pour extraire les lignes de cet objet.

Toute aide est fortement appréciée.

Répondre

2

Je ne sais pas si vous êtes à la recherche de celui-ci, mais vous pouvez écrire vous êtes propre fonction:

code_block <- function(x, y, z) { # x = your function, y = lower limit, z = upper limit 
    dat <- data.frame(head(x, n = z)) 
    dat[which(as.numeric(rownames(dat)) >= y & as.numeric(rownames(dat)) <= z), ] 
} 


code_block(summary.lm, 12, 20) 



> code_block(summary.lm, 10, 20) 

10   w <- z$weights             
11   if (is.null(w)) {            
12    rss <- sum(r^2)            
13   }                
14   else {               
15    rss <- sum(w * r^2)           
16    r <- sqrt(w) * r            
17   }                
18   resvar <- rss/rdf            
19   ans <- z[c("call", "terms", if (!is.null(z$weights)) "weights")] 
20   class(ans) <- "summary.lm" 
+0

Je pensais aussi à écrire ma propre fonction à cet effet, car il ne semble pas être toute fonction construite disponible. J'ai essayé votre fonction, ça marche très bien. Pourriez-vous s'il vous plaît également mettre une déclaration à l'intérieur de votre fonction pour afficher le nombre de lignes ou sinon je vais modifier Aucun problème. Parce que je ne vais pas maintenant ce que devrait être ma gamme, je veux dire que je ne devrais pas mettre un nombre supérieur à la limite supérieure au nombre de lignes. Merci, pour le moment ça marche !! –

+0

@Sowmya S. Manian sry, pas sûr de ce que vous cherchez! – maller

+0

J'ai terminé, merci :) –