私はOECのAPIからダウンロードした異なる国のデータセットで作業しています。割り当てにダブルペーストを使用するには?
私は2つのステップで私の仕事を分割しています:
- は、特定のデータセットを取得し、清掃。 OK
- 任意のデータセットをダウンロードする関数を作成します。 私は
を実行しなかった最初の部分については、この部分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]
にこだわって、それは大丈夫ですと動作しますが、私は関数を作成したい場合は、のは言わせ
私が実行した場合、country_data <- function(COUNTRYCODE, YEAR) {
assign(paste(COUNTRYCODE, YEAR, "_raw", sep=""), as.data.frame(fromJSON(paste("http://atlas.media.mit.edu/hs92/export/",YEAR,"/",COUNTRYCODE,"/all/show/", sep=""))), envir = globalenv());
assign(c("keep"), c("data.hs92_id", "data.import_val", "data.export_val");
assign(paste(COUNTRYCODE, YEAR, "_clean", sep=""), paste(COUNTRYCODE, YEAR, "_raw[keep]", sep=""));
envir = globalenv())
}
country_data("per","2010")
生ファイルは完璧ですが、その後per2010_clean
は "per2010_raw [keep]"と表示されます
per2010_raw[keep]
を有効にするにはどうすればよいですか?事前に多くのおかげです。そして、あなたは(国、年)のごペアのためmapplyでき
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
:
副作用のある関数を記述しないでください。 '<< - 'や 'assign'を使わないでください。 – Roland
私が完全に同意したRolandのアドバイスに耳を傾ける一つの理由は、あなたのワークスペースに 'clean'という名前のアイテムがあれば、上記の' country_data'への呼び出しはそれを拭き取って置き換えるということです。おそらくそれがあなたが期待するものですが、ほとんどのRプログラマが起こりたいことではありません。一般的に、 '< - 'を使用するときにのみそのようにしたいとします。もしあなたが "replace_clean_with_new_country_data"に名前を変更したのであれば、関数型プログラミングを行う人にとってはあまり心配しないでしょう。 –