我有以下代码:
webpage <- "https://www.dotabuff.com/heroes"
heroes <- read_html(webpage) %>%
html_nodes("div.name") %>%
html_text()
heroes <- sapply(gsub(" ","-",heroes), tolower)
它从此网站中提取名称列表。当我运行这段代码时,它会正确地将所有英雄名称解析为小写并用连字符分隔。
运行此代码时:
cat(webpage,heroes[i],sep="/")
我是我要返回的向量的对象(我打算在for
循环中使用它),它将正确地返回网页。但是,当我这样做
var <- cat(webpage,heroes[i],sep="/")
它告诉我var
为空,并且没有值。它也不会将该值分配给for
循环中的任何值,也不会显示为空。
我也尝试过
var <- toString(cat(webpage,heroes[i],sep="/"))
但这也不起作用(同一问题)
我在这里想念什么?
出于上下文的考虑,我正在https://rstudio.cloud中运行所有这些。与环境有关吗?我本以为这很简单。
答案 0 :(得分:2)
我认为您需要使用paste
而不是cat
。 cat
函数用于打印,而paste
函数用于连接字符串:
var <- paste(webpage, heroes[i], sep="/")
您可以在帮助页面上看到?cat
不会返回任何内容(null
)。因此,行为已记录在案。