R - 收到"错误"..."当前工作目录中不存在,但它显然存在



我正在尝试用r写一个循环。我的代码的第一部分工作得很好,这是连接一个URL和一个包含三年(1999-2001)的值。

url <- 'https://www.baseball-almanac.com/players/baseball_births.php?order=LastName,%20FirstName&y='
birth_yrs <- as.character(1999:2001)
for(i in birth_yrs) { 
nam <- paste("year", i, sep = ".")
assign(nam, i)
nam2<-paste(url, i ,sep = "")
assign(nam,paste(url, i ,sep = ""))
}

这在我的全局环境中给出了以下值:

全局环境视图我现在要做的是在循环中使用xml2包中的read_html()函数来保存html页面。我的代码如下:

for(i in birth_yrs) { 
nam3 <- paste("baseball", i, sep = ".")
assign(nam3,read_html(paste("year",i,sep = "")))
}

运行此代码会得到以下错误消息:

错误:'year1999'在当前工作目录('C:/Users/.....')中不存在。

当我运行代码时:

test<-read_html(year.1999)

它工作完美,没有问题:文件代码工作正常

如有任何建议,不胜感激。

谢谢。

如@Waldi所述,您正在提供一个测试字符串。如果您想在仅提供测试字符串时使用变量的内容,则可以使用get()。当提供get字符串时,它将搜索与提供的字符串匹配的变量名,并返回在匹配变量中存储的内容。试一试:

for(i in birth_yrs){ 
nam3 <- paste("baseball", i, sep = ".")
assign(nam3, read_html( get(paste("year",i,sep = ".") ) ))
}

将数据存储在列表中。您可以使用lapply从每个值中提取您想要的任何值。

library(rvest)
url <- paste0('https://www.baseball-almanac.com/players/baseball_births.php?order=LastName,%20FirstName&y=', 1999:2001)
url_data <- lapply(url, read_html)