2

前もってお詫び申し上げます。これは簡単だと思いますが、何が間違っているのかわかりません..

他のものに加えて、このコード..

study.name <- 'NLSY79'
library(XML)
library(httr)
sub.study <- paste0( "https://www.nlsinfo.org/investigator/servlet1?get=SUBSTUDIES&study=" , study.name )
study.html <- GET( sub.study )
content( study.html )
study.block <- htmlParse( study.html , asText = TRUE )

..私に与える..

$children$html
<html>
 <body>
  <p>
   false
   <select id="thesubstudies" onchange="onSubstudyChanged(this);">
    <option value="-1" selected="selected">(Choose One)</option>
    <option value="343.06">NLSY79 (1979-2010)</option>
   </select>
  </p>
 </body>
</html>

「343.06」を抽出するための迅速な(自動)方法が欲しいだけです

ありがとう!

4

2 に答える 2

3

xpathSApply必要な要素を抽出するために使用できます

xpathSApply(study.block, "//option")
# [[1]]
# <option value="-1" selected="selected">(Choose One)</option> 
# [[2]]
# <option value="343.06">NLSY79 (1979-2010)</option> 

それらに関数を適用します(xmlValueまたはxmlAttrs、コンテキストに応じて)。

xpathSApply(study.block, "//option", function(u) xmlAttrs(u)["value"])
#   value    value 
#    "-1" "343.06" 
于 2013-09-30T17:27:58.710 に答える