R - IMDb 数据集未加载
R - IMDb datasets not loading
我正在尝试编写一个函数,它将从此处提供的 IMDb 数据集页面下载和加载文件:https://datasets.imdbws.com/
问题是函数执行正在下载文件,但将其加载到任何对象。
我已经创建了单独的步骤代码,它运行良好。
url <- "https://datasets.imdbws.com/name.basics.tsv.gz"
tmp <- tempfile()
download.file(url, tmp)
name_basics <- readr::read_tsv(
file = gzfile(tmp),
col_names = TRUE,
quote = "",
na = "\N",
progress = FALSE
)
文件已下载并加载到 name_basics。
但是当我尝试创建功能代码时,没有加载任何数据。
我做错了什么?
函数代码
imdbTSVfiles <- function(fileName){
url <- paste0("https://datasets.imdbws.com/",fileName,".tsv.gz")
tmp <- tempfile()
download.file(url, tmp)
name <- readr::read_tsv(
file = gzfile(tmp),
col_names = TRUE,
quote = "",
na = "\N")
}
imdbTSVfiles("name.basics")
预期结果:提供下载并加载的文件名。
您需要将数据存储到动态命名变量中,这可以使用 assign()
轻松实现。
imdbTSVfiles <- function(fileName){
url <- paste0("https://datasets.imdbws.com/",fileName,".tsv.gz")
tmp <- tempfile()
download.file(url, tmp)
assign(fileName,
readr::read_tsv(
file = gzfile(tmp),
col_names = TRUE,
quote = "",
na = "\N"),
envir = .GlobalEnv)
}
imdbTSVfiles("name.basics")
这应该将数据存储在 name.basics
变量中。
我正在尝试编写一个函数,它将从此处提供的 IMDb 数据集页面下载和加载文件:https://datasets.imdbws.com/
问题是函数执行正在下载文件,但将其加载到任何对象。
我已经创建了单独的步骤代码,它运行良好。
url <- "https://datasets.imdbws.com/name.basics.tsv.gz"
tmp <- tempfile()
download.file(url, tmp)
name_basics <- readr::read_tsv(
file = gzfile(tmp),
col_names = TRUE,
quote = "",
na = "\N",
progress = FALSE
)
文件已下载并加载到 name_basics。 但是当我尝试创建功能代码时,没有加载任何数据。 我做错了什么?
函数代码
imdbTSVfiles <- function(fileName){
url <- paste0("https://datasets.imdbws.com/",fileName,".tsv.gz")
tmp <- tempfile()
download.file(url, tmp)
name <- readr::read_tsv(
file = gzfile(tmp),
col_names = TRUE,
quote = "",
na = "\N")
}
imdbTSVfiles("name.basics")
预期结果:提供下载并加载的文件名。
您需要将数据存储到动态命名变量中,这可以使用 assign()
轻松实现。
imdbTSVfiles <- function(fileName){
url <- paste0("https://datasets.imdbws.com/",fileName,".tsv.gz")
tmp <- tempfile()
download.file(url, tmp)
assign(fileName,
readr::read_tsv(
file = gzfile(tmp),
col_names = TRUE,
quote = "",
na = "\N"),
envir = .GlobalEnv)
}
imdbTSVfiles("name.basics")
这应该将数据存储在 name.basics
变量中。