R函数不会修改全局变量

2024-01-16

我有一段简单的 R 代码,它从网站读取 html 数据,然后我尝试循环浏览页面并从每个页面获取数据。我已经多次使用这段代码并且它有效。它将每个页面的结果添加到 R 变量中,但由于某种原因,它在该网站上不起作用。有任何想法吗?

library(XML)
library(RCurl)


data <- NULL

getData <- function(url) {
#For some reason cant read directly from site, need to use RCurl to get the data first
xData <- getURL(url)
table <- data.frame(readHTMLTable(xData)$'NULL')
data <- table
}

getData(url="https://steemdb.com/accounts/reputation?page=1")

我想我知道出了什么问题

Change data <- table to data <<- table在你的职能范围内

您将结果分配给该函数的本地环境,同时<<-将把它分配给全局环境。

我建议你尝试以下方法

library(rvest)
getData <- function(url) { html_table(read_html(url)) }

data <- getData("https://steemdb.com/accounts/reputation?page=1")

或者甚至更好

library(rvest)
getData <- function(url) { html_table(read_html(url)) }
steemdb.url <-"https://steemdb.com/accounts/reputation?page=" 

data <- lapply(1:100, function(i) getData(paste0(steemdb.url, i)) )
data <- do.call(rbind, data)
View(data)

1:100 will get you the first 100 pages.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R函数不会修改全局变量 的相关文章

随机推荐