用R提取PDF文本并创建整洁的数据

您所在的位置:网站首页 如何把pdf提取文字中的内容 用R提取PDF文本并创建整洁的数据

用R提取PDF文本并创建整洁的数据

2024-04-18 15:02| 来源: 网络整理| 查看: 265

title: [Extracting PDF Text with R and Creating Tidy Data] author: 富士山下裸奔 date: 2018.4.10.

江苏·太湖

前言:

在当今的数字时代,数据有多种形式。许多常见的文件类型,如CSV、XLSX和纯文本(TXT)都很容易访问和管理。然而,有时候,我们需要的数据被锁定在文件格式中,这种格式不太容易访问,比如PDF。如果你发现自己处于这种困境,不要担心——pdftools包帮你解决难题。

pdf数据

在这篇文章中,您将学习如何:使用pdftools从PDF中提取文本,使用stringr包来操作字符串的文本,并创建一个整洁的数据集。数据来源来自加州大学男子篮球队的统计数据。

最后,我将会创建一个显示赛季统计数据的tibble,包括每个球员的上场时间、投篮命中率、总得分和平均每场得分。

step 1

是加载所需的R包。stringr 包是R包的tidyverse集合中的一个成员中的一个,其中的软件包旨在使数据科学变得容易。我强烈推荐Hadley Wickham和Garrett Grolemund编写的R for Data Science。对于初学者来说,这是一本很棒的书,对于更高级的程序员来说,这也是一个口袋参考。

library(pdftools) library(tidyverse) step 2

下一步将使用pdf_text命令来读取文件的文本,创建新对象UC_text, read_lines()函数读取文件的行。

UC_text % readr::read_lines() head(UC_text)

把重点放在球员的赛季统计上,这是我们文件的第6行到第24行。第6行包含我们生成的数据的列名,将数据框命名为season_stats。

season_stats % str_replace_all(",", "") %>% strsplit(split = " ") head(all_stats_lines)

all_stats_lines对象的结构是一个列表。现在关注第一个元素,它将是数据框的列名。这里有两个问题:1.有三个元素被命名为“avg”2.)只有一个元素被命名为Player,但是每个玩家的名字都被分成两列(我稍后会修正)。现在,我将重点讨论更改列名。我将使用unlist()将第一个元素和转换列表设置为一个字符向量。一旦我将它们转换回字符向量,可以很容易地将新值赋给我们的列名。

var_lines % unlist() var_lines

var_lines的第5个、第15个和第23个元素都被命名为avg。根据矢量(和一些篮球技术)的前面元素,我们可以推断出这些元素分别代表平均上场时间、平均篮板数和平均得分。我将重命名这些元素,' avg_min ', ' avg_min ', ' avg_pts '

var_lines[c(5, 15, 23)]


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3