Difference between revisions of "RPR-Data-Import"

From "A B C"
Jump to navigation Jump to search
m
m
Line 95: Line 95:
 
* Binary Data
 
* Binary Data
 
* R objects: save() and load()
 
* R objects: save() and load()
 +
 +
 +
Regex for screenscraping example:
 +
 +
===Screenscraping===
 +
 +
Write a PHP program that screenscrapes resolution data for a protein structure file from the PDB.
 +
 +
  Here is a [http://www.pdb.org/pdb/explore/explore.do?structureId=2imm '''link to a PDB record'''] to illustrate the URL format.
 +
 +
  <div class="mw-collapsible-content exercise-box">
 +
    <div class="mw-collapsible mw-collapsed" data-expandtext="Solution" data-collapsetext="Collapse" style="width:90%; padding:10px; margin:5px; border:solid 1px #99999;">
 +
    Fetch the contents of the URL into a string. Use a regex that captures the data you want to retrieve as part of some unique pattern in the HTML source. Print.
 +
 +
  <div class="mw-collapsible-content exercise-box">
 +
    ;The regex:
 +
    :<code>/<td id="se_xrayResolution">\s*(\d+\.\d+)/</code>
 +
 +
    *<code><td id="se_xrayResolution"></code>&nbsp;&nbsp;&nbsp;<small>identifying tag for the information we are looking for, ...</small>
 +
    *<code>\s*</code>&nbsp;&nbsp;&nbsp;<small>... probably followed by whitespace, ...</small>
 +
    *<code>(\d+\.\d+)</code>&nbsp;&nbsp;&nbsp;<small>... the "payload" of the match: one or more digits, a literal dot and and one or more digits.</small>
 +
 +
    ;The code:
 +
    <source lang="PHP">
 +
    <?php
 +
  $URLpath = "http://www.pdb.org/pdb/explore/explore.do?structureId=";
 +
  $PDBid = "2imm";
 +
  $source = file_get_contents($URLpath . $PDBid);
 +
  preg_match('/<td id="se_xrayResolution">\s*?(\d+\.\d+)/', $source, $resolution);
 +
  print($resolution[1]);
 +
  ?>
 +
 +
 +
 +
 +
 +
 +
  
 
{{Vspace}}
 
{{Vspace}}

Revision as of 18:59, 2 October 2017

Importing data in R


 

Keywords:  Data import from unstructured text, structured text, spreadsheets, online repositories, and Web pages


 



 


Caution!

This unit is under development. There is some contents here but it is incomplete and/or may change significantly: links may lead to nowhere, the contents is likely going to be rearranged, and objectives, deliverables etc. may be incomplete or missing. Do not work with this material until it is updated to "live" status.


 


Abstract

Practical for data import from text files, spreadsheets and Web pages.


 


This unit ...

Prerequisites


 


Objectives

...


 


Outcomes

...


 


Deliverables

  • Time management: Before you begin, estimate how long it will take you to complete this unit. Then, record in your course journal: the number of hours you estimated, the number of hours you worked on the unit, and the amount of time that passed between start and completion of this unit.
  • Journal: Document your progress in your Course Journal. Some tasks may ask you to include specific items in your journal. Don't overlook these.
  • Insights: If you find something particularly noteworthy about this unit, make a note in your insights! page.


 


Evaluation

Evaluation: NA

This unit is not evaluated for course marks.


 


Contents

  • Line endings
  • Unstructured text files, headers, skip, omit, and rownames
  • Caution with stringsAsFactors
  • Caution with coerced data
  • Text files with keywords
  • Text-files: changing state
  • Text-files: csv and tsv (and Excel sheets)
  • Text-files: slurping, chunking and streaming
  • curl
  • httr GET and POST
  • XML - libraries and cpath
  • Binary Data
  • R objects: save() and load()


Regex for screenscraping example:

Screenscraping

Write a PHP program that screenscrapes resolution data for a protein structure file from the PDB.

 Here is a link to a PDB record to illustrate the URL format.
   Fetch the contents of the URL into a string. Use a regex that captures the data you want to retrieve as part of some unique pattern in the HTML source. Print.
   ;The regex:
:/\s*(\d+\.\d+)/ *   identifying tag for the information we are looking for, ...
   *\s*   ... probably followed by whitespace, ...
   *(\d+\.\d+)   ... the "payload" of the match: one or more digits, a literal dot and and one or more digits.
   ;The code:
   <source lang="PHP">
   <?php
 $URLpath = "http://www.pdb.org/pdb/explore/explore.do?structureId=";
 $PDBid = "2imm";
 $source = file_get_contents($URLpath . $PDBid);
preg_match('/\s*?(\d+\.\d+)/', $source, $resolution);
 print($resolution[1]);
 ?>





 


Further reading, links and resources

 


Notes


 


Self-evaluation

 



 




 

If in doubt, ask! If anything about this learning unit is not clear to you, do not proceed blindly but ask for clarification. Post your question on the course mailing list: others are likely to have similar problems. Or send an email to your instructor.



 

About ...
 
Author:

Boris Steipe <boris.steipe@utoronto.ca>

Created:

2017-09-17

Modified:

2017-09-18

Version:

0.2

Version history:

  • 0.1 Contents outline
  • 0.1 First stub

CreativeCommonsBy.png This copyrighted material is licensed under a Creative Commons Attribution 4.0 International License. Follow the link to learn more.