2017-10-11 1 views
0

IMF의 데이터로 일부 막대 그래프를 만들려고합니다.Excel 파일을 데이터 프레임으로 읽는 방법

base <- read.table("http://www.imf.org/external/pubs/ft/weo/2017/02/weodata/WEOOct2017all.xls", header=TRUE, sep="\t", fill=TRUE) 

그러나, 데이터가 목록으로 저장됩니다 : 나는 read.table와 XLS 파일() 읽으려고

typeof(base) 
[1] "list" 

을 그리고 난에 데이터를 추출하는 방법을 모른다 바 plot 만들기. 예를 들어, "ARG"국가와 2010-2019 년 (Excel의 40-49 열) 변수 "NGDP_RPCH"를 그래프로 나타냅니다.

나는이 시도했지만 작동하지 않았다

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). 
+1

복제본의 제목은 .xlsx 파일을 참조하지만 거기에 제시된 해결책은 일반적으로 그 파일과 이전 .xls 파일에도 적용됩니다. – joran

+0

모든 data.frame의 경우 'typeof (base) == "list"'입니다. 'typeof()'가 아닌'class()'를 사용하면 객체가 어떻게 저장되는지를 볼 수 있습니다. 나는'class (base)'가 "data.frame"이라고 생각할 것입니다. – MrFlick

+0

두 번째 질문의 경우 국가로 "ARG"에 "NGDP_RPCH"가 없습니다. "NGDP_RPCH"가 올바른 변수입니까? –

답변

2

먼저 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)) 
+1

예! 그것은 잘 작동했습니다! 답변 해주셔서 감사합니다!! – esterodr

관련 문제