我试图用国际货币基金组织的数据制作一些条形图。我尝试用read.table():
读取xls文件base <- read.table("http://www.imf.org/external/pubs/ft/weo/2017/02/weodata/WEOOct2017all.xls", header=TRUE, sep="\t", fill=TRUE)
但是,数据保存为列表:
typeof(base)
[1] "list"
而且我不知道如何提取数据来制作条形图。例如,我想绘制变量&#34; NGDP_RPCH&#34;,用于国家&#34; ARG&#34;和2010-2019年(excel中的第40-49栏)。
我尝试了这个,但它没有工作:
graph <- base[which((base[2]=="ARG")&(base[3]=='NGDP_RPCH')),40:49]
graph
[1] X2010 X2011 X2012 X2013 X2014 X2015 X2016 X2017 X2018 X2019
<0 rows> (or 0-length row.names)
我想知道如何将数据保存为数据框,或者如何从列表中提取数据向量,这样我就可以运行:
barplot(graph).
答案 0 :(得分:3)
首先,使用适当的工具导入Excel文件。这可能包括 readxl , openxlsx , XLConnect , xlsx 等
。library(readxl)
base <- read_excel("~/Desktop/WEOOct2017all.xls")
然后使用[[
选择一个列,而不是[
。
graph <- base[which((base[[2]]=="ARG")&(base[[3]]=='NGDP_RPCH')),40:49]
并转换为矩阵以使用barplot
。
barplot(as.matrix(graph))