1

変数のリストを使用して、R でデータフレームをダウンロードして作成しています。このリストを使用して、各データフレームのさまざまな列を変更できるようにしたいのですが、変数のリストを使用して特定の列を呼び出すのに問題があります。

countries= c("USA","CHN")

for (i in 1:length(countries)){
    download.file(url[i],savedata[i])
    assign(countries[i],xmlToDataFrame(savedata[i]))
}

今、私は次のようなデータフレームを持っています:

head(USA)
        indicator       country date          value decimal
1 GDP (current US$) United States 2012 15684800000000       0
2 GDP (current US$) United States 2011 14991300000000       0
3 GDP (current US$) United States 2010 14419400000000       0
4 GDP (current US$) United States 2009 13898300000000       0
5 GDP (current US$) United States 2008 14219300000000       0
6 GDP (current US$) United States 2007 13961800000000       0

そして、日付列をas.date()関数でフォーマットしたり、値列の単位を変更したりするなど、いくつかの変更を行ってみたいと思いますが、両方のデータフレーム(または任意の数値ケース私は国の長さを増やします。

ただし、これを実行しようとするたびに、countries 変数の国のリストを使用して、各データ フレームの「内部」を取得しているように見えます。私の最初の推測では、次のようなものをループに入れていました。

assign(paste(countries[i],"date",sep="$"),
    as.date(get(paste(countries[i],"date",sep="$")))

get(paste(countries[i]))特に、特定の列の日付を取得しようとしていない場合の動作と、正しい名前を出力する方法について混乱しますpaste(countries[i],"date",sep="$")が、操作したい列だけを取得できないようです。

さらに、ループはこれを行うための理想的な方法ではないことを認識していますが、経験不足のために問題が発生している可能性がありますが、適用機能で同じ問題が発生しています。ループで行う方法、またはループなしで行う方法の提案をいただければ幸いです。ここではスーパー R の初心者です。ただ学ぼうとしています。また、これに関する明確な説明/回答を別の場所で見つけた場合は、それを指摘していただければ幸いです。

4

1 に答える 1