首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R-在数据框中显示数据

R-在数据框中显示数据
EN

Stack Overflow用户
提问于 2020-09-04 04:20:04
回答 1查看 38关注 0票数 0

使用下面的代码,我使用pdftools从pdf文件中提取数据:

代码语言:javascript
复制
library(pdftools)
library(readr)

download.file("https://www.stoxx.com/document/Reports/SelectionList/2020/August/sl_sxebmp_202008.pdf","sl_sxebmp_202008.pdf", mode = "wb")
txt <- pdf_text("sl_sxebmp_202008.pdf")

txt <- read_lines(txt)

print(txt)

如何将这些数据显示为data.frame?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-04 04:31:07

我建议使用您的文件使用tabulizer方法。您可以使用extract_tables()将所有数据放入一个列表中,然后对其进行处理。列表中的第一个元素将包含变量名,因此最好先处理此元素。执行此操作的代码如下:

代码语言:javascript
复制
library(tabulizer)
#Read
lst <- extract_tables(file = 'sl_sxebmp_202008.pdf') 
#Format
#Split elements as first element has variable names
d1 <- lst[[1]]
lst2 <- lst[2:length(lst)]
#Process
#Format first element
d1 <- as.data.frame(d1,stringsAsFactors = F)
names(d1) <- d1[1,]
d1 <- d1[2:dim(d1)[1],]
#Format list
lst2 <- lapply(lst2,function(x) {x <- as.data.frame(x,stringsAsFactors=F)})
#Bind all element in lst2
d2 <- do.call(rbind,lst2)
#Assign same names
names(d2) <- names(d1)
#Bind all
d3 <- rbind(d1,d2)

输出d3的一些行(1753行,11列):

代码语言:javascript
复制
          ISIN   Sedol     RIC Int.Key Company Name Country Currency Component FF Mcap (BEUR)
1 CH0038863350 7123870  NESN.S  461669       NESTLE      CH      CHF         Y          299.1
2 CH0012032048 7110388   ROG.S  474577 ROCHE HLDG P      CH      CHF         Y          206.4
3 CH0012005267 7103065  NOVN.S  477408     NOVARTIS      CH      CHF         Y          173.1
4 DE0007164600 4846288 SAPG.DE  476361          SAP      DE      EUR         Y          146.4
5 NL0010273215 B929F46 ASML.AS  546078    ASML HLDG      NL      EUR         Y          127.6
6 GB0009895292 0989529   AZN.L  098952  ASTRAZENECA      GB      GBP         Y          124.2
  Rank\r(FINAL) Rank\r(PREVIO\rUS)
1             1                  1
2             2                  2
3             3                  3
4             4                  5
5             5                  4
6             6                  6
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63731105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档