【问题标题】:How to read an Excel file as a data frame如何将 Excel 文件作为数据框读取
【发布时间】:2017-10-11 19:39:48
【问题描述】:

我正在尝试使用来自 IMF 的数据制作一些条形图。我尝试使用 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"

而且我不知道如何提取数据来制作条形图。例如,我想为国家“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).

【问题讨论】:

  • 重复引用 .xlsx 文件的标题,但那里提供的解决方案通常也适用于这些和较旧的 .xls 文件。
  • 对于任何data.frame,它都是真的typeof(base)=="list"。使用class(),而不是typeof() 来查看对象的行为方式,而不是它的存储方式。我猜class(base) 是“data.frame”
  • 对于第二个问题,“ARG”作为国家没有“NGDP_RPCH”。您确定“NGDP_RPCH”是正确的变量吗?
  • Excel 文件 228:213 ARG NGDP_RPCH Argentina

标签: r excel dataframe bar-chart


【解决方案1】:

首先,使用适当的工具导入 Excel 文件。这可能包括包 readxlopenxlsxXLConnectxlsx 等。

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))

【讨论】:

    猜你喜欢
    • 2021-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-31
    • 2013-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多