Sys.getenv()の結果をdata.frameとして扱いたい

Dlistというクラスのオブジェクトになっていて使いにくい。

> x <- Sys.getenv()
> class(x)
[1] "Dlist"

しょうがないんで、これをdata.frameとして返却する関数を書いた。

get_env <- function(x=NULL)
{
  env <- Sys.getenv(x)
  class(env) <- NULL
  env <- as.data.frame(env, stringsAsFactors=FALSE)
  env <- cbind(rownames(env), env)
  rownames(env) <- NULL
  names(env) <- c("key", "value")
  env  
}

これを使うと、環境変数をdata.frameとして取得でき、更にdplyr & stringrと組み合わせることで楽にフィルタリングできる。

> x <- get_env()
> class(x)
[1] "data.frame"
> dplyr::filter(x, stringr::str_detect(key, "(COMPUTERNAME|DISPLAY)"))
           key           value
1 COMPUTERNAME LAPTOP-S5NHVV53
2      DISPLAY              :0

このあたりの”tidy Sys"系関数はパッケージングされてるのかな?なければ作ってもよい気がしてきた。
おしまい。