2017-10-31 15 views
2

私は経済学の大学院生で、Google Scholarに関わる研究プロジェクトに取り組んでいます。経済学者は通常Stataを使用していますが、Google ScholarへのアクセスはRを通じて簡単に行えるようになりました。そのため、Rが過去1週間どのように機能しているかを学習してきました。言うまでもなく、私は初心者であり、私が実際に理解していないことがたくさんあります。名前情報に基づいてGoogle Scholar IDを取得する

私はエコノミストのリストをウェブスクレイプし、このリストからランダムなサンプルを生成することができました。これらの学者に関するGoogle Scholarの情報を入手したいと思います。そうするために、私は図書館の「学者」の利用を計画しています。

私の問題は、「scholar」がGoogle Scholar IDを要求してしまうことです。私はエコノミストの名前しか持っていないので、IDを取得したいと思います。

私は基本的に各エコノミストのGoogle Scholarクエリを実行したいと考えています。 https://scholar.google.fr/scholar?hl=fr&as_sdt=0%2C5&q= "経済学者の名前"とhtmlコードにGoogleの学者IDがあります。

私が始めるために経済学者 "エマニュエル・サエス" を試してみました: https://scholar.google.fr/scholar?hl=fr&as_sdt=0%2C5&q=Emmanuel+Saez&btnG=

関連するCSSのノードがある: ".gs_rt2" 、ので、私のコードは次のようになります。

page <- read_html("https://scholar.google.fr/scholar?hl=fr&as_sdt=0%2C5&q=Emmanuel+Saez&btnG=") 
text <- html_nodes(page, ".gs_rt2") 

オブジェクト" のテキスト「そのようなことになります。

[1] <h4 class="gs_rt2"><a href="/citations?user=qZpr_CQAAAAJ&amp;hl=fr&amp;oe=ASCII&amp;oi=ao"><b... 

を私は最後の部分が欠落している:どのように私は後わずか12文字コードを選択するために、Rを教えてください 『』 =ユーザー?

それはかなり明白でなければなりませんが、私はそれを行う方法を理解できません。誰かが私を助けることができれば、それは素晴らしいだろう。

おかげで、 G.ゴーティエ

+1

多分あなたはregexpを使うことができますか? '?gsub'や'?regexec'を見てください。おそらく、 'stringr'('?str_sub')というパッケージの部分文字列メソッドも手近に来る可能性があります。 –

+4

[Rの他の2つの文字列の間で文字列を抽出する]の可能な複製(https://stackoverflow.com/questions/39086400/他の2つの文字列を抽出する) –

答えて

1

最も簡単な方法は、おそらく正規表現です。次のようなものがあります。

user_code <- sub(".*user=([A-Za-z_]+)&.*", "\\1", text) 

ここで、「\ 1」は括弧内の内容の逆参照です。詳細は、?regexp?subをお試しください。

+0

ありがとうございます。それはうまく動作します。私は 'sub'と 'regexp'を掘り下げます。 –

+0

多分あなたは私の答えを受け入れることができます。 – dash2

+0

確かに、私はできることを知りませんでした!再度、感謝します。 –

関連する問題