在 R 中 XML::xmlValue() 的多个输出之间添加空格
adding white-spaces between multiple outputs of XML::xmlValue() in R
library(httr)
library(RCurl)
library(XML)
raw <- GET("http://hse.ru/org/persons",
query = list(udept = "135083"))
raw_text <- content(raw, "text", encoding = "UTF-8")
parsed <- htmlParse(raw_text)
interests <- xpathSApply(parsed,
'/html/body/div/div/div/div[2]/div/div/div/div/div/div/div/div',
xmlValue)
interests[31:32]
[1] "прикладная эконометрикаЭмпирический анализ рынков(…)"
[2] "современная теория правасоциология права"
对于不熟悉俄语的人。最后两行很难解释为:
interests[31:32]
[1] "applied econometricsEmpirical analysis of markets"
[2] "modern legal theorysociology of law"
我正在应用的对象 xmlValue
具有这种结构(已翻译):
[[1]]
<div class="with-indent small">
<a class="tag" href="/org/persons/?intst=62024792">applied econometrics</a>
<a class="tag" href="/org/persons/?intst=62247389">empirical analysis of markets</a>
(...)
</div>
[[2]]
<div class="with-indent small">
<a class="tag" href="/org/persons/?intst=132077027">modern legal theory</a>
(...)
<a class="tag" href="/org/persons/?intst=52953762">sociology of law</a>
</div>
我想知道如何添加白色-space(或"; "
)作为值之间的分隔符并获得以下内容:
interests[31:32]
[1] "applied econometrics Empirical analysis of markets"
[2] "modern legal theory sociology of law"
我尝试将 xmlValue
与 paste
(xpathSApply(parsed, 'pattern', paste(xmlValue, " "))
) 一起使用,但收到错误消息。
如果我没看错(看不懂俄语),你可以使用getChildrenStrings
:
sapply(parsed['/html/body/div/div/div/div[2]/div/div/div/div/div/div/div/div', fun = getChildrenStrings], paste, collapse = ";")
# ...
# [30] "экономика образования;мониторинг образования;качество образования;оплата труда;06.71.45 Экономика образования"
# [31] "прикладная эконометрика;Эмпирический анализ рынков;Количественные маркетинговые исследования;прикладная статистика;06.00.00 Экономика. Экономические науки"
# [32] "современная теория права;чистое учение о праве;проблемы суверенитета;социология права"
# ...
library(httr)
library(RCurl)
library(XML)
raw <- GET("http://hse.ru/org/persons",
query = list(udept = "135083"))
raw_text <- content(raw, "text", encoding = "UTF-8")
parsed <- htmlParse(raw_text)
interests <- xpathSApply(parsed,
'/html/body/div/div/div/div[2]/div/div/div/div/div/div/div/div',
xmlValue)
interests[31:32]
[1] "прикладная эконометрикаЭмпирический анализ рынков(…)"
[2] "современная теория правасоциология права"
对于不熟悉俄语的人。最后两行很难解释为:
interests[31:32]
[1] "applied econometricsEmpirical analysis of markets"
[2] "modern legal theorysociology of law"
我正在应用的对象 xmlValue
具有这种结构(已翻译):
[[1]]
<div class="with-indent small">
<a class="tag" href="/org/persons/?intst=62024792">applied econometrics</a>
<a class="tag" href="/org/persons/?intst=62247389">empirical analysis of markets</a>
(...)
</div>
[[2]]
<div class="with-indent small">
<a class="tag" href="/org/persons/?intst=132077027">modern legal theory</a>
(...)
<a class="tag" href="/org/persons/?intst=52953762">sociology of law</a>
</div>
我想知道如何添加白色-space(或"; "
)作为值之间的分隔符并获得以下内容:
interests[31:32]
[1] "applied econometrics Empirical analysis of markets"
[2] "modern legal theory sociology of law"
我尝试将 xmlValue
与 paste
(xpathSApply(parsed, 'pattern', paste(xmlValue, " "))
) 一起使用,但收到错误消息。
如果我没看错(看不懂俄语),你可以使用getChildrenStrings
:
sapply(parsed['/html/body/div/div/div/div[2]/div/div/div/div/div/div/div/div', fun = getChildrenStrings], paste, collapse = ";")
# ...
# [30] "экономика образования;мониторинг образования;качество образования;оплата труда;06.71.45 Экономика образования"
# [31] "прикладная эконометрика;Эмпирический анализ рынков;Количественные маркетинговые исследования;прикладная статистика;06.00.00 Экономика. Экономические науки"
# [32] "современная теория права;чистое учение о праве;проблемы суверенитета;социология права"
# ...