计算内置函数中的行数,通过指定数字提取行范围

Count number of lines in an in-built function, extract range of lines by specifying numbers

假设我有一个内置函数,其代码非常冗长,所以我想计算函数中的行数,并通过为某个函数提供数字范围来仅显示部分代码。

为了查看函数中有多少行,我使用了tail()函数,它会在每行前面显示数字

  tail(XYZ_Function) 

我尝试使用 head()tail() 组合,即假设我想要从第 145 行到第 150 行的函数,所以我做了

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

除了组合使用 head()tail() 之外,R 中是否还有可用的函数,我可以只提供对象名称和两个数字来从该对象中提取行。

非常感谢对此的任何帮助。

我不确定你是否正在寻找这个,但你可以编写自己的函数:

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"