3

R で複数の値パラメーターを使用して URL クエリ文字列を解析および構築する簡単な方法はありますか?

私は次のようなものを期待します

myqueryString <- parse_url("http://www.mysite.com/?a=1&a=2&b=val")$query
myqueryString
  $a
  [1] 1 2
  $b
  [1] "val"

urlElements <- list(scheme="http",path="www.mysite.com/",query=list(a=c(1,2),b="val"))
setattr(urlElements,"class","url")
build_url(urlElements)
  [1] "http://www.mysite.com/?a=1&a=2&b=val"

しかしhttr、与えます

parse_url("http://www.mysite.com/?a=1&a=2&b=val")$query
 $a
 [1] "1"

 $a
 [1] "2"

 $b
 [1] "val"

builtURL <- build_url(urlElements)
builtURL
   [1] "http:///www.mysite.com/?a=c%281%2C%202%29&b=val"

この最新の URL は再処理できます

parse_url(builtURL)$query
 $a
 [1] "c(1, 2)"

 $b
 [1] "val"

parse()+eval()を使用して戻ることができることは理解していaますが、URL に自由にダンプできるコードを eval するのはかなり安全ではないようです。助言がありますか?

4

1 に答える 1

1

これら 2 つの引数リスト形式の間で変換が機能するかどうかを確認します。

mergeUrlArgs <- function(x) sapply(unique(names(x)), function(z) unlist(x[names(x) == z], use.names=FALSE), simplify=FALSE)

expandUrlArgs <- function(x) structure(do.call(c, lapply(x, function(z) as.list(z))), names=rep(names(x), sapply(x, length)))
于 2014-03-12T09:08:57.800 に答える