R函数不会修改全局变量
R function wont modify global variable
我有一段简单的 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")
我想我知道哪里出了问题
在您的函数中将 data <- table
更改为 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.
我有一段简单的 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")
我想我知道哪里出了问题
在您的函数中将 data <- table
更改为 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.