Rスクリプトの行数を数える方法があるかどうかを知りたいと思います。Rスクリプトのコード行数を取得する
コメント行を無視します。
インターネット上で解決策が見つかりませんでした。しかし、多分私は何かを逃した。
Rスクリプトの行数を数える方法があるかどうかを知りたいと思います。Rスクリプトのコード行数を取得する
コメント行を無視します。
インターネット上で解決策が見つかりませんでした。しかし、多分私は何かを逃した。
あなたはこれを試みることができる:
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")
それは非常に有用な情報のように見えるしていませんが、あなたはこれを行うことができます。
script <- "#assign
a <- 1
b <- 2
"
nrow(read.table(text = script, sep = "°"))
[1] 2
それはほとんどのRスクリプトでそうな文字だから、私は、セパレータとして°
を使用しています。必要に応じて調整してください。
はもちろん、これはR.
の外にはるかに効率的に行うことができ例は、8行でtester.R
をのsctipt、1コメント:
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
それはほとんどそうです。空行は数えられませんでした。しかし、それはコメント行を数えます。 – celianou
私はそれを更新しました。「sum(first_character_of_lines!= "#"&first_character_of_lines!= "\ r")」によって 'sum(first_character_of_lines!="# ")'を置き換えました。 –
Perfect!ありがとうございます:) – celianou