2017-08-04 7 views
0

urgh、私はRstudioの指定したディレクトリ内のすべてのファイル内のテキストを検索することができます機能、「ファイルで見つける」を愛し、私は、検索やファイルの種類するディレクトリを指定する方法を嫌い、あなたはをクリックしてポイントする必要があります!Rstudioの「ファイルを検索」のR版はありますか?

誰もがRコンソールでこれを行う簡単な方法を知っていますか?で、私のgdnsパッケージ結果の最上位レベルにコンソールで

> fif("map") 

を実行

+0

Rの 'system'コマンドによって呼び出された、Windows上でunixまたはfindstrでgrepを使うだけですか? – RockScience

+0

また、メモ帳の+ +を使用することもできますが、私はそれらの機能が似ていると思います。 – zwep

答えて

0
fif <- function(what, where=".", in_files="\\.[Rr]$", recursive = TRUE, 
       ignore.case = TRUE) { 

    fils <- list.files(path = where, pattern = in_files, recursive = recursive) 

    found <- FALSE 

    file_cmd <- Sys.which("file") 

    for (fil in fils) { 

    if (nchar(file_cmd) > 0) { 
     ftype <- system2(file_cmd, fil, TRUE) 
     if (!grepl("text", ftype)[1]) next 
    } 

    contents <- readLines(fil) 

    res <- grepl(what, contents, ignore.case = ignore.case) 
    res <- which(res) 

    if (length(res) > 0) { 

     found <- TRUE 

     cat(sprintf("%s\n", fil), sep="") 
     cat(sprintf(" % 4s: %s\n", res, contents[res]), sep="") 

    } 

    } 

    if (!found) message("(No results found)") 

} 

:コンソールで

R/dkim.r 
    11: #' purrr::map_df(dkim_rec, .parse_dkim) 
    21: #'  purrr::map_df(~{ 
R/gdns-package.r 
    29: #' @importFrom purrr safely map map_df %||% %>% 
R/gdns.r 
    102: results <- map(entities, gdns::query, type=type, edns_client_subnet=edns_client_subnet) 
    103: map_df(results, "Answer") 
R/spf.r 
    11: purrr::map(spf_rec, .split_spf) 
    76: purrr::map(split_spf(spf_rec), function(x) { 
    84: purrr::map(split_spf(spf_rec), function(x) { 
    92: purrr::map(split_spf(spf_rec), function(x) { 
    100: purrr::map(split_spf(spf_rec), function(x) { 
    108: purrr::map(split_spf(spf_rec), function(x) { 

どのファイルがwhatを一致されていない場合、それはそう説明します:

> fif("python") 
(No results found) 

があなたの~/.Rprofileで機能を維持し、それはすべての非バニラRセッションになります。

+0

私はWindowsで試していますが、動作しません。問題はSys.whichコマンドにあると思いますか?ここでデバッグしようとしていますが、その間に迅速な解決策がある場合は、私はそれを感謝します。申し訳ありませんが、私はそれを使用することを意図したシステムで、私は悪いと言っていたはずです。 答えがありがとう、機能は素晴らしいよ! – RBA

+0

https://cran.r-project.org/bin/windows/Rtools/installer.htmlをインストールしてから、この機能を試してみてください。 – hrbrmstr

関連する問題