用R提取PDF文本并创建整洁的数据 |
您所在的位置:网站首页 › 如何把pdf提取文字中的内容 › 用R提取PDF文本并创建整洁的数据 |
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_linesvar_lines的第5个、第15个和第23个元素都被命名为avg。根据矢量(和一些篮球技术)的前面元素,我们可以推断出这些元素分别代表平均上场时间、平均篮板数和平均得分。我将重命名这些元素,' avg_min ', ' avg_min ', ' avg_pts ' var_lines[c(5, 15, 23)] |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |