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"系関数はパッケージングされてるのかな?なければ作ってもよい気がしてきた。
おしまい。