R 如何在分配中使用双粘贴?
我正在使用从API下载的不同国家的数据集 我将我的工作分为两个步骤:R 如何在分配中使用双粘贴?,r,function,user-defined-functions,R,Function,User Defined Functions,我正在使用从API下载的不同国家的数据集 我将我的工作分为两个步骤: 获取和清理某个数据集。嗯 创建一个函数来下载任何数据集。我被困在这个地方了 第一部分我确实跑了 chile2013_df <- as.data.frame(fromJSON("http://atlas.media.mit.edu/hs92/export/2013/chl/all/show/")) keep <- c("data.hs92_id", "data.import_val", "data.export_va
chile2013_df <- as.data.frame(fromJSON("http://atlas.media.mit.edu/hs92/export/2013/chl/all/show/"))
keep <- c("data.hs92_id", "data.import_val", "data.export_val")
chile2013_df <- chile2013_df[keep]
原始文件将是完美的,但是per2010\u clean
将显示为文本“per2010\u raw[keep]”
如何使per2010\u raw[keep]
有效?非常感谢。试试这个:
keep <- c("data.hs92_id", "data.import_val", "data.export_val")
country_data <- function(COUNTRYCODE, YEAR) {
weblink <- paste0("http://atlas.media.mit.edu/hs92/export/",YEAR,"/",COUNTRYCODE,"/all/show/")
rawdat <- as.data.frame(fromJSON(file=weblink))
cleandat <- rawdat[keep]
return(list(raw=rawdat, clean=cleandat))
} #end country_data
keep您的方法很有用,谢谢。对你的代码稍加修改,我就更接近我想要的了
keep <- c("data.hs92_id", "data.import_val", "data.export_val")
country_data <- function(COUNTRYCODE, YEAR) {
weblink <- paste0("http://atlas.media.mit.edu/hs92/export/",YEAR,"/",COUNTRYCODE,"/all/show/")
clean <<- as.data.frame(fromJSON(weblink))[keep]
}
country_data("per", 2010)
keep不要编写有副作用的函数。不要使用听取罗兰建议的一个理由(我完全同意)是,如果您的工作区中有任何名为clean
的项目,调用上面的country\u data
会将其删除并替换。这可能是您所期望的,但这不是大多数R程序员所希望的。我们通常只希望在使用
keep <- c("data.hs92_id", "data.import_val", "data.export_val")
country_data <- function(COUNTRYCODE, YEAR) {
weblink <- paste0("http://atlas.media.mit.edu/hs92/export/",YEAR,"/",COUNTRYCODE,"/all/show/")
rawdat <- as.data.frame(fromJSON(file=weblink))
cleandat <- rawdat[keep]
return(list(raw=rawdat, clean=cleandat))
} #end country_data
#pulling data
alldat <- mapply(function(x, y) list(country_data(x, y)), c("per","chl"), c(2010, 2013))
names(alldat) <- paste0(c("per","chl"), c(2010, 2013))
#accessing data
alldat[["chl2013"]]$raw
alldat[["chl2013"]]$clean
keep <- c("data.hs92_id", "data.import_val", "data.export_val")
country_data <- function(COUNTRYCODE, YEAR) {
weblink <- paste0("http://atlas.media.mit.edu/hs92/export/",YEAR,"/",COUNTRYCODE,"/all/show/")
clean <<- as.data.frame(fromJSON(weblink))[keep]
}
country_data("per", 2010)