获取R脚本中的代码行数

时间:2017-11-16 13:02:14

标签: r

我想知道是否有办法计算R脚本中的行数。

忽略评论行。

我没有在互联网上找到解决方案。但也许我错过了一些东西。

3 个答案:

答案 0 :(得分:1)

你可以试试这个:

library(magrittr)
library(stringr)
library(readr)

number_of_lines_of_code <- function(file_path){
 file <- readr::read_file(file_path)
 file_lines <- file %>% stringr::str_split("\n") 
 first_character_of_lines <- file_lines %>%
  lapply(function(line)stringr::str_replace_all(line," ",""))  %>% 
  lapply(function(line)stringr::str_sub(line,1,1)) %>%
  unlist
 sum(first_character_of_lines != "#" & first_character_of_lines != "\r")
}

number_of_lines_of_code("your/file/path.R")

答案 1 :(得分:1)

示例sctipt tester.R有8行,其中一行注释:

x <- 3
x+1

x+2

#x+4

x*x

计算没有注释的行的函数:

foo <- function(path) {
  rln <- read_lines(path)
  rln <- rln[-grep(x = trimws(rln) , pattern = '^#')]
  rln <- rln[ trimws(rln) != '']
  return(length(rln))
}

试运行:

> foo('tester.R')
[1] 7

答案 2 :(得分:0)

这似乎不是非常有用的信息,但你可以这样做:

script <- "#assign
a <- 1

b <- 2
"

nrow(read.table(text = script, sep = "°"))
[1] 2

我使用°作为分隔符,因为它在大多数R脚本中不太可能出现。根据需要调整。

当然,这可以在R之外更有效地完成。