我想知道是否有办法计算R脚本中的行数。
忽略评论行。
我没有在互联网上找到解决方案。但也许我错过了一些东西。
答案 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之外更有效地完成。