我正在使用变量列表在 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()
函数格式化日期列,或更改值列的单位,但我希望能够对两个数据框(或任意数字案例我增加国家的长度。
但是,每当我尝试这样做时,我似乎可以使用国家变量中的国家列表来“进入”每个数据框。我最初的猜测是把这样的东西放在一个循环中:
assign(paste(countries[i],"date",sep="$"),
as.date(get(paste(countries[i],"date",sep="$")))
特别是,get(paste(countries[i]))
如果我不尝试获取特定列的日期,以及如何paste(countries[i],"date",sep="$")
打印正确的名称,我对如何工作感到困惑,但我似乎无法获得我想要操作的一列。
此外,我意识到循环不是执行此操作的理想方式,但是我在应用函数方面遇到了同样的问题,尽管由于我缺乏经验,我可能在使用它们时遇到了麻烦。非常感谢有关如何循环执行或不循环执行的建议。Super R新手在这里,只是在努力学习。另外,如果您在其他地方对此有明确的解释/答案,我会很感激您指出我的方向。