Help
RSS
API
Feed
Maltego
Contact
Domain > www.digitalife.pro
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2020-12-11
5.153.12.241
(
ClassC
)
2026-02-15
162.215.118.73
(
ClassC
)
Port 80
HTTP/1.1 200 OKDate: Sun, 15 Feb 2026 21:32:40 GMTServer: ApacheP3P: CPNOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEMExpires: Wed, 17 Aug 2005 00:00:00 GMTCache-Control: no-store, no-cache, must-revalidate, post-check0, pre-check0Pragma: no-cacheSet-Cookie: 27e75db6631ed6508be2a779a95cdb421182dd610324be33b4929d02b45f641b; path/; HttpOnlyUpgrade: h2,h2cConnection: UpgradeLast-Modified: Sun, 15 Feb 2026 21:32:41 GMTVary: Accept-EncodingTransfer-Encoding: chunkedContent-Type: text/html; charsetutf-8 !DOCTYPE html>html xmlnshttp://www.w3.org/1999/xhtml xml:langen-gb langen-gb >head>base hrefhttp://www.digitalife.pro/ /> meta http-equivcontent-type contenttext/html; charsetutf-8 /> meta namedescription contentDigital Handling for Life Sciences /> meta namegenerator contentJoomla! - Open Source Content Management /> title>Home/title> link href/index.php?formatfeed&typerss relalternate typeapplication/rss+xml titleRSS 2.0 /> link href/index.php?formatfeed&typeatom relalternate typeapplication/atom+xml titleAtom 1.0 /> link href/templates/j51_enlighten/favicon.ico relshortcut icon typeimage/vnd.microsoft.icon /> link href/index.php?optioncom_ajax&pluginarktypography&formatjson relstylesheet typetext/css medianull attribs /> link hrefhttp://www.digitalife.pro/media/editors/arkeditor/css/squeezebox.css relstylesheet typetext/css /> link href/modules/mod_j51thumbsgallery/css/thumbs_style.css relstylesheet typetext/css /> link href/modules/mod_j51thumbsgallery/css/slimbox.css relstylesheet typetext/css /> link hrefhttp://www.digitalife.pro/modules/mod_j51gridgallery/css/style.css relstylesheet typetext/css /> link href/modules/mod_j51slideshow/css/slideshow.css relstylesheet typetext/css /> style typetext/css>.grid .j51gridgallery { width:265px; margin:0px 0px;}.j51gridgallery figcaption { border-top: 5px solid #b8b8b8 !important;}@media only screen and (min-width: 960px) and (max-width: 1024px) {.grid .j51gridgallery {width:210px;}}@media only screen and (min-width: 768px) and (max-width: 959px) {.grid .j51gridgallery {width:150px;}}@media only screen and ( max-width: 767px ) {.grid .j51gridgallery {width:205px;}}@media only screen and (max-width: 440px) {.grid .j51gridgallery {width:242px;}} /* Set slideshow height/width */ .slideshowcontainer { max-width:1080px; max-height:510px; } /* Set slideshow border-radius*/ .slideshowcontainer, .slidesjs-container, .slidesjs-container img { border: 0px solid #ffffff; border-radius: 0px; } /* Navigation Position */ .slidesjs-pagination { float: right; } /* Slideshow Spacing */ #container_spacer1 { height:510px;} /* Set slideshow height/width */ .slideshowcontainer { max-width:1080px; max-height:510px; } /* Set slideshow border-radius*/ .slideshowcontainer, .slidesjs-container, .slidesjs-container img { border: 0px solid #ffffff; border-radius: 0px; } /* Navigation Position */ .slidesjs-pagination { float: right; } /* Slideshow Spacing */ #container_spacer1 { height:510px;} /* Set slideshow height/width */ .slideshowcontainer { max-width:1080px; max-height:510px; } /* Set slideshow border-radius*/ .slideshowcontainer, .slidesjs-container, .slidesjs-container img { border: 0px solid #ffffff; border-radius: 0px; } /* Navigation Position */ .slidesjs-pagination { float: right; } /* Slideshow Spacing */ #container_spacer1 { height:510px;} .slideshowcontainer { max-height: 510px; } .slidesjs-pagination { display:none; } /style> script typeapplication/json classjoomla-script-options new>{csrf.token:fe4368fd5bf26357901ba26824169658,system.paths:{root:,base:}}/script> script src/media/jui/js/jquery.min.js?675e1b71155e0a60b250770ea8e2d546 typetext/javascript>/script> script src/media/jui/js/jquery-noconflict.js?675e1b71155e0a60b250770ea8e2d546 typetext/javascript>/script> script src/media/jui/js/jquery-migrate.min.js?675e1b71155e0a60b250770ea8e2d546 typetext/javascript>/script> script src/media/system/js/caption.js?675e1b71155e0a60b250770ea8e2d546 typetext/javascript>/script> script src/media/system/js/mootools-core.js?675e1b71155e0a60b250770ea8e2d546 typetext/javascript>/script> script src/media/system/js/core.js?675e1b71155e0a60b250770ea8e2d546 typetext/javascript>/script> script src/media/system/js/mootools-more.js?675e1b71155e0a60b250770ea8e2d546 typetext/javascript>/script> script src/media/jui/js/bootstrap.min.js?675e1b71155e0a60b250770ea8e2d546 typetext/javascript>/script> script srchttp://www.digitalife.pro/media/editors/arkeditor/js/jquery.easing.min.js typetext/javascript>/script> script srchttp://www.digitalife.pro/media/editors/arkeditor/js/squeezebox.min.js typetext/javascript>/script> script typetext/javascript>jQuery(window).on(load, function() { new JCaption(img.caption); });(function() { if(typeof jQuery undefined) return; jQuery(function($) { if($.fn.squeezeBox) { $( a.modal ).squeezeBox({ parse: rel }); $( img.modal ).each( function( i, el ) { $(el).squeezeBox({ handler: image, url: $( el ).attr( src ) }); }) } else if(typeof(SqueezeBox) ! undefined) { $( img.modal ).each( function( i, el ) { SqueezeBox.assign( el, { handler: image, url: $( el ).attr( src ) }); }); } function jModalClose() { if(typeof(SqueezeBox) object) SqueezeBox.close(); else ARK.squeezeBox.close(); } }); })(); /script> script srchttp://www.digitalife.pro/modules/mod_j51thumbsgallery/js/jquery.noconflict.js typetext/javascript>/script> script srchttp://www.digitalife.pro/modules/mod_j51thumbsgallery/js/slimbox2.js typetext/javascript>/script> link relstylesheet href/templates/system/css/system.css typetext/css />link relstylesheet href/templates/j51_enlighten/css/bootstrap.css typetext/css />link relstylesheet href/templates/j51_enlighten/css/typo.css typetext/css />link relstylesheet href/templates/j51_enlighten/css/jstuff.css typetext/css />link relstylesheet href/templates/j51_enlighten/css/animate.css typetext/css />link relstylesheet href/templates/j51_enlighten/css/font-awesome.css typetext/css />link relstylesheet href/templates/j51_enlighten/css/nexus.css typetext/css />meta nameviewport contentwidthdevice-width, initial-scale1, maximum-scale1/>link relstylesheet href/templates/j51_enlighten/css/responsive.css typetext/css />style typetext/css>@media only screen and (min-width: 960px) and (max-width: 1080px) {}/* Responsive - Center crop logo image */@media only screen and (max-width: 1080px) {}/style>link relstylesheet typetext/css hrefhttp://fonts.googleapis.com/css?familyRoboto />style typetext/css>body, input, button, select, textarea {font-family:Roboto }/style>link relstylesheet typetext/css hrefhttp://fonts.googleapis.com/css?familyRoboto:300,400 />style typetext/css>h2{font-family:Roboto; }/style>link relstylesheet typetext/css hrefhttp://fonts.googleapis.com/css?familyRoboto:300,400 />style typetext/css>.module h3, .module_menu h3{font-family:Roboto }/style>link relstylesheet typetext/css hrefhttp://fonts.googleapis.com/css?familyRoboto:300,400 />style typetext/css>#hornav{font-family:Roboto }/style>link relstylesheet typetext/css hrefhttp://fonts.googleapis.com/css?familyWalter+Turncoat:300,400 />style typetext/css>h1.logo-text a{font-family:Walter Turncoat }/style>style typetext/css>/*--Set Logo Image position and locate logo image file--*/ .logo a {left:30px}.logo a {top:30px}/*--End Set Logo Image position and locate logo image file--*/ /*--Body font size--*/body {font-size: 14px}/*--Text Colors for Module Heads and Article titles--*/ body {color:#656565;}h2, h2 a:link, h2 a:visited {color: #707070 ; }.module h3, .module_menu h3, h3 {color: #5c5c5c }a {color: #bc5e43 }/*--Text Colors for Logo and Slogan--*/ h1.logo-text a { color: #a6523a;}p.site-slogan {color: #9e9e9e }/*--Hornav Ul text color and dropdown background color--*/#hornav ul li a {color: #5b6587 }#subMenusContainer ul, #subMenusContainer ol, #hornav ul ul {background-color: #fffefc }/*--Start Style Side Column and Content Layout Divs--*//*--Get Side Column widths from Parameters--*/.sidecol_a {width: 25% }.sidecol_b {width: 25% }.maincontent {padding: 30px 35px 30px;}/*--Check and see what modules are toggled on/off then take away columns width, margin and border values from overall width*/#content_remainder {width:75% }/*Style SSC layout*/ .sidecol_a {float:left; } .sidecol_b {float:right; } #content_remainder {float:left;}/* Sidecolumn background color */.backgrounds .sidecol_a , .backgrounds .sidecol_b, .sidecol_a, .sidecol_b { background-color: #f7f7f7;}/*--End Style Side Column and Content Layout Divs--*//* Social Icons Colour */#socialmedia ul li a{background-position: 8px 9px;}/* Wrapper Width */.wrapper960, .backgrounds .content_background {width: 1080px ;}/* Background Color */body, #body_bg {background-color: #ffffff;}/*-- Background Image --*/ #body_bg { background: url(/images/wave-ocean-animated-gif-8.gif) 50% 0% no-repeat fixed;}/* Button Colour */.readmore a, input.button, button, .j51-button a, .module .j51imagelinkhover .j51button a, .label-info, .badge-info,.module_style-box .j51imagelinkhover .j51button a, .search .icon-search, .search .button, .slicknav_btn, .slidesjs-previous.slidesjs-navigation, .slidesjs-next.slidesjs-navigation { background-color: #bc5e43;}.btn, .btn-group.open .btn.dropdown-toggle, .input-append .add-on, .input-prepend .add-on, .pager.pagenav a, .btn-primary:active, .btn-primary.active, .btn-primary.disabled, .btn-primarydisabled { background-color: #bc5e43;}/* Top Menu Active Color *//*#hornav > ul > li > a:hover, #hornav > ul > li.active > a, .mainMenuParentBtnFocused { background-color: !important;}*//* Top Menu */#container_hornav .wrapper960 { background-color: rgba(244,244,244, 1.0 );}.slicknav_menu {background:#f4f4f4}.is-sticky #container_hornav .wrapper960 {background-color: #f4f4f4;}.container_spacer3 .wrapper960, .container_spacer4 .wrapper960 { background-color: rgba(244,244,244, 0.8 );}/* Header */#container_header .wrapper960 { background-color: rgba(255,255,255, 1.0 );}.is-sticky .header_bar { background-color: rgba(255,255,255, 1 );}.container_spacer2 { height:px;}/* Showcase */#container_slideshow { background-color: rgba(240,240,240, 0.0 );}/* Top-1# Module Background */#container_top1_modules, #container_top1_modules ul.tabs li a.linkopen, #container_top1_modules dl.tabs dt.open h3 a:link, #container_top1_modules dl.tabs dt.open h3 a:visited, .csstransforms3d .tabs a:hover span::before, .csstransforms3d .tabs a:focus span::before, .tabs a span { background-color: rgba(166,82,58, 0.0 );}#container_top1_modules .wrapper960 {background-color:#a6523a;}/* Top-2# Module Background */#container_top2_modules { background-color: rgba(244,244,244, 0.0 );}#container_top2_modules .wrapper960 {background-color:#f4f4f4;}/* Top-3# Module Background */#container_top3_modules { background-color: rgba(237,237,237, 0.0 );}#container_top3_modules .wrapper960 {background-color:#ededed;}/* Article Background Color */#container_main { background-color: rgba(255,255,255, 0.0 );}#container_main .wrapper960 { background-color:#ffffff;}/* Bottom-1 Modules */#container_bottom1_modules { background-color: rgba(237,237,237, 0.0 );}#container_bottom1_modules .wrapper960 {background-color:#ededed;}/* Bottom-2 Modules */#container_bottom2_modules { background-color: rgba(237,237,237, 0.0 );}#container_bottom2_modules .wrapper960 {background-color:#ededed;}/* Base Modules */#container_base { background-color: rgba(255,255,255, 0.0 );}#container_base .wrapper960 {background-color:#ffffff;}/* Logo Image Dimensions */.logo_container, h1.logo, h1.logo a { width: px; height: px;}/* Responsive Options */ @media only screen and ( max-width: 767px ) { .showcase {display:inline;} .mobile_showcase {display:none;} } /* Custom Reponsive CSS */ /* Module Container Padding */#bottom_modules.block_holder {padding: 0;}#bottom_modules .module_surround {padding: 0;}#base1_modules.block_holder {padding: 0;}#base1_modules .module_surround {padding: 0;}/* Header-# Adjustment *//*--Load Custom Css Styling--*/ /style>script src//cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.2/modernizr.js>/script>!-- Animate on Scroll-->script typetext/javascript src/templates/j51_enlighten/js/jquery.visible.js charsetutf-8>/script>!-- Sticky Div -->script typetext/javascript src/templates/j51_enlighten/js/jquery.sticky.js charsetutf-8>/script> script typetext/javascript > jQuery(window).load(function(){ jQuery(#container_hornav).sticky({ topSpacing: 65 }); }); jQuery(window).load(function(){ jQuery(#container_header).sticky({ topSpacing: -20 }); }); /script>!-- Hornav Responsive Menu -->script typetext/javascript src/templates/j51_enlighten/js/responsive-nav/responsive-nav.js charsetutf-8>/script>script> jQuery(function(){ jQuery(#hornav).slicknav(); });/script>!--if ie 9>style typetext/css>.animatethis, .animateViewed { opacity: 1; filter: alpha(opacity100);}/style>!endif-->!-- link relstylesheet hrefhttp://basehold.it/25> -->/head>body> div idbody_bg data-typebackground> div classcontainer_spacer2>/div> div idcontainer_spacer1 classj51container>div classwrapper960> div classheader-2> div classcustom > p>strong>Email:/strong> xavier.alacoque@gmail.com/p>/div> /div> /div>/div> div classcontent_background_container> !-- Content background --> div classbackgrounds> div classcontent_background>/div> /div> !--End Content background --> div classcontent_background> div idcontainer_header classj51container> div classwrapper960> div idsocialmedia> ul idnavigation> li classsocial-rss>a href# target_blank titleRSS>/a>/li> li classsocial-twitter>a href# target_blank titleTwitter>/a>/li> li classsocial-facebook>a href# target_blank titleFacebook>/a>/li> li classsocial-googleplus>a href# target_blank titleGooglePlus>/a>/li> li classsocial-linkedin>a href# target_blank titleLinkedIn>/a>/li> /ul> /div> div id header> div idlogo> h1 classlogo-text> a href/index.php title>span> Data Mining in Life Sciences /span>/a> /h1> p classsite-slogan>DIGITALIFE/p> /div> div classclear>/div>/div> /div> /div> div idcontainer_hornav classj51container>div classwrapper960> div classhornavmenu> div idhornav> ul classmenu idmoomenu>li classitem-561>a classfa-user href/index.php/login onclickwindow.open(this.href,targetWindow,toolbarno,locationno,statusno,menubarno,scrollbarsyes,resizableyes);return false; >Login/a>/li>li classitem-464 current active>a classfa-home href/index.php >Home/a>/li>li classitem-566>a classfa-info-circle href/index.php/howto >HowTo/a>/li>li classitem-551 deeper parent>a classfa-chart href/index.php/data-science >Data Sciences/a>ul>li classitem-546>a href/index.php/data-science/data-life-cycle >0>DATA Life Cycle/a>/li>li classitem-552 deeper parent>a href/index.php/data-science/data-gathering >1>Collection/a>ul>li classitem-553>a href/index.php/data-science/data-gathering/case-report-form >Case Report Form/a>/li>/ul>/li>li classitem-554>a href/index.php/data-science/pre-processing >2>Pre-Processing/a>/li>li classitem-555>a href/index.php/data-science/hygiene >3>Hygiene/a>/li>li classitem-556>a href/index.php/data-science/analysis >4>Analysis/a>/li>li classitem-557>a href/index.php/data-science/visualization >5>Visualization/a>/li>li classitem-558>a href/index.php/data-science/interpretation >6>Interpretation/a>/li>li classitem-559>a href/index.php/data-science/intervention >7>Intervention/a>/li>/ul>/li>li classitem-560>a classfa-cloud-download href/index.php/big-data >Big Data/a>/li>li classitem-562>a classfa-gears (alias) href/index.php/theory >Theory/a>/li>li classitem-564>a classfa-bookmark href/index.php/references >References/a>/li>li classitem-563 deeper parent>a classfa-desktop href/index.php/softwares >Softwares/a>ul>li classitem-567>a href/index.php/softwares/data-gathering >1>Collection/a>/li>li classitem-568>a href/index.php/softwares/pre-processing >2>Pre-Processing/a>/li>li classitem-569>a href/index.php/softwares/hygiene >3>Hygiene/a>/li>li classitem-570>a href/index.php/softwares/analysis >4>Analysis/a>/li>li classitem-571>a href/index.php/softwares/visualization >5>Visualization/a>/li>li classitem-572>a href/index.php/softwares/interpretation >6>Interpretation/a>/li>li classitem-573>a href/index.php/softwares/intervention >7>Intervention/a>/li>/ul>/li>li classitem-565 deeper parent>a classfa-code href/index.php/scripts >Scripts/a>ul>li classitem-575>a href/index.php/scripts/data-gathering >1>Collection/a>/li>li classitem-576>a href/index.php/scripts/pre-processing >2>Pre-Processing/a>/li>li classitem-577>a href/index.php/scripts/hygiene >3>Hygiene/a>/li>li classitem-578>a href/index.php/scripts/analysis >4>Analysis/a>/li>li classitem-579>a href/index.php/scripts/visualization >5>Visualization/a>/li>li classitem-580>a href/index.php/scripts/interpretation >6>Interpretation/a>/li>li classitem-581>a href/index.php/scripts/intervention >7>Intervention/a>/li>/ul>/li>/ul> /div> /div> div classclear>/div> /div>/div> div idcontainer_slideshow classj51container>div classwrapper960 group-border-shadow> div id slideshow classblock_holder> div classshowcase> div classshowcase_padding> div classslideshowcontainer> a classslidesjs-previous slidesjs-navigation href# titlePrevious>i classfa fa-chevron-left>/i>/a> div idslides> img src/images/slideshow/slide1.jpg altslide1 /> img src/images/slideshow/slide2.jpg altslide2 /> img src/images/slideshow/slide3.jpg altslide3 /> img src/images/slideshow/slide4.jpg altslide4 /> /div>/div>!-- jQuery Toggle -->!-- End jQuery Toggle -->!-- SlidesJS Required: Link to jquery.slides.js -->script typetext/javascript src/modules/mod_j51slideshow/js/jquery.slides.min.js >/script>!-- End SlidesJS Required -->!-- SlidesJS Required: Initialize SlidesJS with a jQuery doc ready -->script typetext/javascript>jQuery.noConflict();jQuery(document).ready(function($) { $(function() { $(#slides).slidesjs({ width: 1080, height: 510, play: { active: true, effect: fade, auto: true, interval: 5000, swap: true }, // Fade Effect Toggle navigation: { effect: fade }, pagination: { effect: fade }, effect: { fade: { speed: 1000 } } }); });});/script>!-- End SlidesJS --> /div> /div> div class mobile_showcase> div classshowcase_padding> /div> /div> div classclear>/div>/div> /div>/div> div classoutside_center> div idcontainer_top3_modules classj51container>div classwrapper960 group-border-shadow> div idtop3_modules classblock_holder> div idwrapper_top-3 classblock_holder_margin> div classtop-3 stylewidth:100%;> div classmodule > div classmodule_surround> div classmodule_content> div classcustom > h2 classanimate fadeIn styletext-align: center;>Welcome to Digitalife/h2>hr stylemargin-top:15px; />p classanimate fadeIn styletext-align: center;>Digitalife offers you the canvas to turn your imagination in to a realitybr />giving you the perfect framework for your project!/p>p classanimate fadeIn styletext-align: center;>From data collection to Intervention , follow this whole cycle of Data Processing./p>p classanimate fadeIn styletext-align: center;>Dive inside Data Mining and Big Data./p>p classanimate fadeIn styletext-align: center;>Apply your knowledge to life sciences and discover correlation & causation./p>p classanimate fadeIn styletext-align: center;>And if you are a Newbie , discover how it works in our HowTo blog./p>hr />p> /p>/div> /div> /div> /div> /div> div classclear>/div> /div> /div> /div>/div> div idcontainer_main classj51container> div classwrapper960 group-border-shadow> !--Setting up Layout for MainContent and Side Columns. Check to see if modules are enabled or disabled in the sidecolumns-->div id main classblock_holder>!--Sidecol & content background --> div classbackgrounds> div classsidecol_b> /div> div classcontent_remainder>/div> /div>!--End Sidecol & content background --> !--Side Columns Layout--> div idsidecol_b classside_margins sidecol_b> div classsidecol_block> div classmodule animate fadeInRight> div classmodule_surround> div classmodule_header> h3 class>Team /h3> span classhairline>/span> /div> div classmodule_content> div classcustom > h6 stylemargin: 0;>Xavier ALACOQUE/h6>h4 stylemargin: 0;>M.D. - M.SCi/h4>p>span stylefont-size: 11.9px;>MIT cerified in Big DATA/span>/p>hr />h6 stylemargin: 0;> /h6>/div> /div> /div> /div> /div> /div>!--End Side Columns Layout-->!--Find Content width and show component area-->div idcontent_remainder classside_margins content_remainder> !--Modules ContentTop--> !--End Modules ContentTop--> div classmaincontent> div classmessage> div idsystem-message-container> /div> /div> div classblog-featured itemscope itemtypehttps://schema.org/Blog>div classitems-leading clearfix> div classleading-0 clearfix itempropblogPost itemscope itemtypehttps://schema.org/BlogPosting> h2 classitem-title itempropheadline> a href/index.php/data-science/data-life-cycle itempropurl> Data Life Cycle /a> /h2>p>img alt src/images/DATAlifeCYCLE.png />/p>p>Data handling is not a linear process, this is not a waterfall. Rather,this is a cycle that feeds on itself. At the top of the cycle is collection. Youre acquiring information perhaps from one of these sources that weve described. Then the data moves to pre-processing. So it cornes in as a mass of ones and zéros. We need to begin to normalize it into data models that we can use./p>p>From pre-processing we go to hygiene. Hygiene is a way of extracting some of the noise out of your data, cleaning it up so that you have a more clear signal. Thi is important when youre engaged in data hygiene that you dont throw out your original raw source data because you might be confusing signal and noise. You dont want to throw out the information that youre actually trying to extract out. From hygiene we go to analysis. Now youre doing a first order look at what do I have, what am I working with, can I begin to extract some patterns out of this data? This leads us to visualization. It telling me, whats the information that I can extract from this data./p>p>Visualization then leads us to interprétation, lve decided on what the signal is thats coming out of my data. What does it mean? Applying interprétation is where higher-order data analysis occurs./p>p>Finally, we get to intervention. Once youve acquired your data, pre-processed it, cleaned it, analyzed it, visualized it, developed interprétations of it, you then can begin to say OK, what are we going to do with this data?/p>p> /p>p> /p>ul> li styletext-align: right;>SOURCE : MIT ® Big Data & Social Analysis Certification/li>/ul> /div> /div> div classitems-row cols-2 row-0 row-fluid> div classitem column-1 span6 itempropblogPost itemscope itemtypehttps://schema.org/BlogPosting> h2 classitem-title itempropheadline> a href/index.php/howto/88-homepage itempropurl> HOWTO Import Excel Data File inside R /a> /h2>h2>What’s Excel’s Connection To R?/h2>p>As most of you know, Excel is a spreadsheet application developed by Microsoft. It is an easily accessible tool for organizing, analyzing and storing data in tables and has a widespread use in many different application fields all over the world. It doesnt need to surprise that R has implemented some ways to read, write and manipulate Excel files (and spreadsheets in general)./p>p>This tutorial on reading and importing Excel files into R will give an overview of some of the options that exist to import Excel files and spreadsheets of different extensions to R. Both basic commands in R and dedicated packages are covered. At the same time, some of the most common problems that you can face when loading Excel files and spreadsheets into R will be addressed./p>p>Want to dive deeper? Check out a hrefhttps://www.datacamp.com/courses/importing-data-in-r-part-1>this DataCamp course on importing data with R/a>, which has a chapter on importing Excel data./p>h2>Steps/h2>nav>ol> li>a hrefhttps://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r#step1>Your Data/a>/li> li>a hrefhttps://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r#step2>Prepping Your Data Set/a> ol typea> /ol> /li> li>a hrefhttps://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r#step3>Preparatory Work In R/a>/li> li>a hrefhttps://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r#step4>Loading your Spreadsheets And Files Into R/a> ol typea> li>a hrefhttps://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r#basic>Basic R Commands/a> ol typei> li>a hrefhttps://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r#readtable>read.table()/a>/li> li>a hrefhttps://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r#special>Special Cases of read.table()/a>/li> /ol> /li> li>a hrefhttps://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r#packages>Packages/a> ol typei> li>a hrefhttps://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r#xlconnect>XLConnect/a>/li> li>a hrefhttps://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r#xlsx>xlsx Package/a>/li> li>a hrefhttps://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r#gdata>gdata Package/a>/li> li>a hrefhttps://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r#readxl>Readxl Package/a>/li> /ol> /li> /ol> /li> li>a hrefhttps://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r#step5>Final Checkup/a>/li> li>a hrefhttps://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r#step6>There And Back Again/a>/li>/ol>p> /p>h2 idstep1>Step One. Your Data/h2>p> /p>p>What this tutorial eventually comes down to is data: you want to import it fast and easily to R. As a first step, it is therefore a good idea to have a data set on your personal computer./p>p>There are basically two options to do this: either you have a dataset of your own or you download one from the Internet./p>p>The latter can be somewhat challenging if you intend to analyze your data thoroughly after importing, as you will need to get a hold on a dataset that is as complete and qualitative as possible!/p>ul> li>The following a hrefhttp://www.kdnuggets.com/datasets/index.html>list/a> can be a useful help when you’re not sure where to find data on the Internet. For this tutorial, make sure to save whatever data that you find on the Internet has a file extension that can be opened with Excel./li> li>Another option is Quandl, a search engine for numerical data. It offers millions of free and open financial, economic, and social datasets and might prove to be an easier option, especially for beginners who are not yet familiar with the field of data analysis. You can check out and use Quandl a hrefhttps://www.quandl.com/>here/a>./li>/ul>p>b>Tip/b> : if you are a beginning R programmer, you can go through our a hrefhttps://www.datacamp.com/community/open-courses/quandl-r-tutorial>tutorial/a>, which not only explains how to import and manipulate Quandl data sets, but also provides you with interactive exercises to slowly submerge you into Quandl./p>p> /p>h2 idstep2>Step Two. Prepping Your Data Set/h2>p> /p>h3>Best Practices/h3>p>Before you start thinking about how to load your Excel files and spreadsheets into R, you need to first make sure that your data is well prepared to be imported. If you would neglect to do this, you might experience problems when using the R functions that will be described in Step Three./p>p>Here’s a list of some best practices to help you to avoid any issues with reading your Excel files and spreadsheets into R:/p>ul> li>The first row of the spreadsheet is usually reserved for the header, while the first column is used to identify the sampling unit;/li> li>Avoid names, values or fields with blank spaces, otherwise each word will be interpreted as a separate variable, resulting in errors that are related to the number of elements per line in your data set;/li> li>If you want to concatenate words, do this by inserting a code>./code>. For example:/li> li> /li>/ul>p> /p>p> /p>pre>code>Sepal.Length/code>/pre>p> /p>p> /p>ul> li>Short names are prefered over longer names;/li> li>Try to avoid using names that contain symbols such as code>?/code>, code>$/code>,code>%/code>, code>^/code>, code>&/code>, code>*/code>, code>(/code>, code>)/code>,code>-/code>,code>#/code>, code>?/code>,code>,/code>,code></code>,code>>/code>, code>//code>, code>|/code>, code>\/code>, code>/code> ,code>/code> ,code>{/code>, and code>}/code>;/li> li>Delete any comments that you have made in your Excel file to avoid extra columns or NAs to be added to your file; and/li> li>Make sure that any missing values in your data set are indicated with code>NA/code>./li> li> /li>/ul>h3>Saving Your Data/h3>p>Make sure that your data is saved in Excel. This allows you to revisit the data later to edit, to add more data or to changing them, preserving the formulas that you maybe used to calculate the data, etc./p>p>Microsoft Excel offers many options to save your file: besides the default extension code>.xls/code> or code>.xlsx/code>, you can go to the File tab, click on “Save As” and select one of the extensions that are listed as the “Save as Type” options./p>p>The most common extensions to save datasets are code>.csv/code> and code>.txt/code>(as tab-delimited text file). Depending on the saving option that you choose, your data set’s fields are separated by tabs or commas. These symbols are then called the “field separator characters” of your data set./p>h2 idstep3>Step Three. Preparatory Work In R/h2>p> /p>p>Once you have your dataset saved in Excel, you still need to set your working directory in R./p>p>To do this, try to find out first where your working directory is set at this moment:/p>pre>code>getwd()/code>/pre>p>Then, it could be that you want to change the path that is returned in such a way that it includes the folder where you have stored your dataset:/p>pre>code>setwd(<location of your dataset>)/code>/pre>p>By executing this command, R now knows exactly in which folder you’re working./p>h2 idstep4>Step Four. Loading your Spreadsheets And Files Into R/h2>p> /p>p>After saving your data set in Excel and some adjusting your workspace, you can finally start with the real importing of your file into R!/p>p>This can happen in two ways: either through basic R commands or through packages. Go through these two options and discover which option is easiest and fastest for you./p>h3 idbasic>Basic R Commands/h3>p> /p>p>The following commands are all part of R’s Utils package, which is one of the core and built-in packages that contains a collection of utility functions. You will see that these basic functions focus on getting Excel spreadsheets into R, rather than the Excel files themselves./p>p>If you are more interested in the latter, scroll just a bit a hrefhttps://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r#packages>further down/a> to discover the packages that are specifically designed for this purpose./p>h4 idreadtable>code>read.table()/code>/h4>p> /p>p>As described in Step Two, Excel offers many options for saving your data sets and one of them is the tab-delimited text file or code>*.txt/code> file./p>p>If your data is saved as such, you can use one of the easiest and most general options to import your file to R: the code>read.table()/code> function./p>pre>code>df <- read.table(<FileName>.txt, header TRUE)/code>/pre>p>You fill in the first argument of the code>read.table()/code> function with the name of your text file in between code>/code> and its extension, while you specify in the second argument code>header/code> if your excel file has names in the first line or top row. The code>TRUE/code> value for the code>header/code> argument is the default./p>p>strong>Remember/strong> that by executing code>setwd()/code> R knows in which folder you’re working. This means that you can also just write the file’s name as an argument of the code>read.table()/code> function without specifying the file’s location, just like this:/p>pre>code>df <- read.table(<FileName>.txt, header TRUE)/code>/pre>p>strong>Note/strong> that the field separator character for this function is set to code>/code> or white space because it is meant to work for tab-delimited code>.txt/code> files, which separate fields based on tabs. Indeed, white spaces here indicate not only one or more spaces, but also tabs, newlines or carriage returns./p>p>But what if your file uses another symbol to separate the fields of your data set, like in the following data set?/p>pre>code>1/6/12:01:03/0.50/WORST2/16/07:42:51/0.32/ BEST3/19/12:01:29/0.50/EMPTY4/13/03:22:50/0.14/INTERMEDIATE5/8/09:30:03/0.40/WORST/code>/pre>p>You can easily indicate this by adding the code>sep/code> argument to the code>read.table()/code> function:/p>ul> li>a hrefhttps://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r ng-class{dcl-active: isActiveLeftTab(usercode)} ng-clickactivateLeftTab(usercode)>script.R/a>/li> li> /li> li> /li>/ul>textarea autocapitalizeoff autocorrectoff spellcheckfalse wrapoff>/textarea>p>1/p>p>2/p>p>3/p>p>4/p>p>5/p>p>6/p>p>7/p>p>8/p>p>9/p>p># Read in the data/p>p>df <- ..........(https://s3.amazonaws.com/assets.datacamp/p>p>.com/blog_assets/scores_timed.txt,/p>p>header FALSE,/p>p>sep/,/p>p>strip.white TRUE,/p>p>na.strings EMPTY)/p>p># Print out `df`/p>p>print(..)/p>ul> li>a hrefhttps://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r ng-class{dcl-active: isActiveRightTab(console)} ng-clickactivateRightTab(console)>R Console/a>/li> li> /li>/ul>textarea autocapitalizeoff autocorrectoff spellcheckfalse wrapoff>/textarea>p>>/p>p>button href/ ng-clickshowSolutionTab() ng-showsolutionButtonShown tooltip-placementtop uib-tooltipShow Solution>Solution/button>button href/ ng-clickexecute() submit-disable tooltip-placementtop uib-tooltipExecute Code>Run/button>/p>p>The code>strip.white/code> argument allows you to indicate whether you want the white spaces from strong>unquoted/strong> character fields stripped. It is only used when code>sep/code> has been specified and only takes on a logical value. The code>na.strings/code> indicates which strings should be interpreted as NA values. In this case, the string “EMPTY” is to be interpreted as an code>NA/code> value./p>p>You see the extra white space before the class code>BEST/code> in the second row has been removed, that the columns are perfectly separated thanks to the denomination of the code>sep/code> argument and that the empty value, denoted with “EMPTY” in row three was replaced with NA. The decimal point did not cause any problems, since “.” is the default for code>read.table()/code>./p>p>Lastly, since your data set did not have a header, R has provided some attributes for it, namely code>V1/code>, code>V2/code>, code>V3/code>, code>V4/code> and code>V5/code>./p>p>strong>Note/strong> that if you ever come across a warning like “incomplete final line found by readTableHeader on…”, try adding an End Of Line (EOL) character by moving your cursor to the end of the last line in your file and pressing enter. Save the file and try to import the file again; Normally the warning should be resolved./p>h4 idspecial>Special Cases of read.table()/h4>p> /p>p>The following options are special cases of the versatile code>read.table()/code> function. This means that any arguments that are used in this function can be applied in all the functions that are described in this section, and vice versa./p>p>The variants are almost identical to code>read.table()/code> and differ from it in three aspects only:/p>ul> li>The separator symbol;/li> li>The header argument is always set at code>TRUE/code>, which indicates that the first line of the file being read contains the header with the variable names;/li> li>The code>fill/code> argument is also set as code>TRUE/code>, which means that if rows have unequal length, blank fields will be added implicitly./li>/ul>p>Tip: for a full overview of all possible arguments that can be used in all four functions, visit the a hrefhttp://www.rdocumentation.org/packages/utils/functions/read.table>Rdocumentation page/a>./p>h4 idreadcsv()>read.csv() and read.csv2()/h4>p> /p>p>The code>read.csv()/code> and code>read.csv2()/code> functions are frequently used to save datasets into Excel is code>.csv/code> or Comma Separated Values. As described before, code>read.csv()/code> and code>read.csv2()/code> have another separator symbol: for the former this is a comma, whereas the latter uses a semicolon./p>p>Tip: find out what separator symbol is used in your code>.csv/code> file by opening it in a text editor such as TextEdit or Notepad./p>p>For example, this data set…/p>pre>code>1;6;12:01:03;0,50;WORST2;16;07:42:51;0,32;BEST3;19;12:01:29;0,50;BEST4;13;03:22:50;0,14;INTERMEDIATE5;8;09:30:03;0,40; WORST /code>/pre>p>… As well as this one are code>.csv/code> files:/p>pre>code>1,6,12:01:03,0.50,WORST2,16,07:42:51,0.32,BEST3,19,12:01:29,0.50,BEST4,13,03:22:50,0.14,INTERMEDIATE5,8,09:30:03,0.40,WORST/code>/pre>p>strong>Remember/strong> that both functions have the code>header/code> and code>fill/code> arguments set as code>TRUE/code> by default./p>p>To read code>.csv/code> files that use a comma as separator symbol, you can use the code>read.csv()/code> function, like this:/p>ul> li>a hrefhttps://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r ng-class{dcl-active: isActiveLeftTab(usercode)} ng-clickactivateLeftTab(usercode)>script.R/a>/li> li> /li> li> /li>/ul>textarea autocapitalizeoff autocorrectoff spellcheckfalse wrapoff>/textarea>p>1/p>p>2/p>p>3/p>p>4/p>p>5/p>p>6/p>p>7/p>p>8/p>p>9/p>p># Read in the data/p>p>df <- ........(https://s3.amazonaws.com/assets.datacamp/p>p>.com/blog_assets/scores_timed.csv,/p>p>header TRUE,/p>p>quote\,/p>p>stringsAsFactors TRUE,/p>p>strip.white TRUE)/p>p># Print out `df`/p>p>print(..)/p>ul> li>a hrefhttps://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r ng-class{dcl-active: isActiveRightTab(console)} ng-clickactivateRightTab(console)>R Console/a>/li> li> /li>/ul>textarea autocapitalizeoff autocorrectoff spellcheckfalse wrapoff>/textarea>p>>/p>p>button href/ ng-clickshowSolutionTab() ng-showsolutionButtonShown tooltip-placementtop uib-tooltipShow Solution>Solution/button>button href/ ng-clickexecute() submit-disable tooltip-placementtop uib-tooltipExecute Code>Run/button>/p>p>strong>Note/strong> that the code>quote/code> argument denotes whether your file uses a certain symbol as quotes: in the command above, you pass code>\/code> or the ASCII quotation mark (“) to the code>quote/code> argument to make sure that R takes into account the symbol that is used to quote characters./p>p>This is especially handy for data sets that have values that look like the ones that appear in the fifth column of this example data set. You can clearly see that the double quotation mark has been used to quote the character values of the CLASS variable./p>p>The code>stringsAsFactors/code> argument allows you to specify whether strings should be converted to factors. The default value is set to code>FALSE/code>./p>p>strong>Remember/strong> that you don’t have to type the file’s location if you have specified your working directory in R./p>p>For files where fields are separated by a semicolon, you use the code>read.csv2()/code> function:/p>ul> li>a hrefhttps://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r ng-class{dcl-active: isActiveLeftTab(usercode)} ng-clickactivateLeftTab(usercode)>script.R/a>/li> li> /li> li> /li>/ul>textarea autocapitalizeoff autocorrectoff spellcheckfalse wrapoff>/textarea>p>1/p>p>2/p>p>3/p>p>4/p>p>5/p>p>6/p>p>7/p>p>8/p>p>9/p>p>10/p>p>11/p>p>12/p>p>13/p>p>14/p>p>15/p>p>16/p>p># Read in the data/p>p>df <- ..........(https://s3.amazonaws.com/assets.datacamp/p>p>.com/blog_assets/scores_timed2.csv,/p>p>header FALSE,/p>p>quote \,/p>p>dec ,,/p>p>row.names c(M, N, O, P, Q),/p>p>col.names c(X, Y, Z, A,B),/p>p>fill TRUE,/p>p>strip.white TRUE,/p>p>stringsAsFactorsTRUE)/p>p># Print out `df`/p>p>print(..)/p>p># Inspect data types/p>p>str(..)/p>ul> li>a hrefhttps://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r ng-class{dcl-active: isActiveRightTab(console)} ng-clickactivateRightTab(console)>R Console/a>/li> li> /li>/ul>textarea autocapitalizeoff autocorrectoff spellcheckfalse wrapoff>/textarea>p>>/p>p>button href/ ng-clickshowSolutionTab() ng-showsolutionButtonShown tooltip-placementtop uib-tooltipShow Solution>Solution/button>button href/ ng-clickexecute() submit-disable tooltip-placementtop uib-tooltipExecute Code>Run/button>/p>p>strong>Note/strong> that the code>dec/code> argument allows you to specify the character for the decimal mark. Make sure to specify this for your file if necessary, otherwise your values will be interpreted as separate categorical variables!/p>p>The code>col.names/code> argument, completed with the code>c()/code> function that concatenates column names in a vector, specifies the column names in the first row. This can be handy to use if your file doesn’t have a header line, R will use the default variable names V1, V2, …, etc. code>col.names/code> can override this default and assign variable names. Similarly, the argument code>row.names/code> specifies the observation names in the first column of your data set./p>p>The command above imports the following data set:/p>pre>code>1;6;12:01:03;0,50;WORST2;16;07:42:51;0,32;BEST3;19;12:01:29;0,504;13;03:22:50;0,14; INTERMEDIATE5;8;09:30:03;0,40;WORST/code>/pre>p>You see that the columns and rows are given names through the code>col.names/code> and code>row.names/code> arguments, that all fields are clearly separated, with the third unequal row filled in with a blank field, thanks to code>fill TRUE/code>. The added white spaces of unquoted characters are removed, just as specified in the code>strip.white/code> argument. Lastly, strings are imported as factors because of the “TRUE” value that was provided for code>stringsAsFactors/code> argument./p>p>You check this last when you ran code>str(df)/code>./p>p>strong>Note/strong> that the vector that you use to complete the code>row.names/code> or code>col.names/code> arguments needs to be of the same length of your dataset!/p>h4 idreaddelim()>read.delim() and read.delim2()/h4>p> /p>p>Just like the code>read.csv()/code> function, code>read.delim()/code> and code>read.delim2()/code> are variants of the code>read.table()/code> function./p>p>strong>Remember/strong> that they are also almost identical to the code>read.table()/code> function, except for the fact that they assume that the first line that is being read in is a header with the attribute names, while they use a tab as a separator instead of a whitespace, comma or semicolon. They also have the code>fill/code> argument set to code>TRUE/code>, which means that blank field will be added to rows of unequal length./p>p>Consider the following data set:/p>pre>code>1/6/12:01:03/0.50/WORST2/16/07:42:51/0.32/BEST3/19/12:01:29/0.504/13/03:22:50/0.14/ INTERMEDIATE5/8/09:30:03/0.40/ WORST /code>/pre>p>You can use code>read.delim()/code> to import this data set, for example:/p>ul> li>a hrefhttps://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r ng-class{dcl-active: isActiveLeftTab(usercode)} ng-clickactivateLeftTab(usercode)>script.R/a>/li> li> /li> li> /li>/ul>textarea autocapitalizeoff autocorrectoff spellcheckfalse wrapoff>/textarea>p>1/p>p>2/p>p>3/p>p>4/p>p>5/p>p>6/p>p>7/p>p>8/p>p>9/p>p>10/p>p>11/p>p>12/p>p>13/p>p>14/p>p>15/p>p>16/p>p># Read in the data/p>p>df <- read.delim(https://s3.amazonaws.com/assets.datacamp/p>p>.com/blog_assets/scores_timed3.txt,/p>p>header FALSE,/p>p>sep /,/p>p>dec .,/p>p>row.names c(O, P, Q),/p>p>fill TRUE,/p>p>strip.white TRUE,/p>p>stringsAsFactors TRUE,/p>p>na.strings EMPTY,/p>p>as.is 3,/p>p>nrows 5,/p>p>skip 2)/p>p># Print out `df`/p>p>print(df)/p>ul> li>a hrefhttps://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r ng-class{dcl-active: isActiveRightTab(console)} ng-clickactivateRightTab(console)>R Console/a>/li> li> /li>/ul>textarea autocapitalizeoff autocorrectoff spellcheckfalse wrapoff>/textarea>p>>/p>p>button href/ ng-clickexecute() submit-disable tooltip-placementtop uib-tooltipExecute Code>Run/button>/p>p>strong>Note/strong> that this function uses a decimal point as the decimal mark, as in: 3.1415. The code>nrows/code> argument specifies that only five rows should be read of the original data. Lastly, the code>as.is/code> is used to suppress factor conversion for a subset of the variables in your data, if they weren’t otherwise specified: just supply the argument with a vector of indices of the columns that you don’t want to convert, like in the command above, or give in a logical vector with a length equal to the number of columns that are read. If the argument is code>TRUE/code>, factor conversion is suppressed everywhere./p>p>strong>Remember/strong> that factors are variables that can only contain a limited number of different values. As such, they are often called categorical variables./p>p>You will get the following result:/p>pre>code> V1 V2 V3 V4 V5O 3 19 12:01:29 0.50 P 4 13 03:22:50 0.14 INTERMEDIATEQ 5 8 09:30:03 0.40 WORST/code>/pre>p>As the code>read.delim()/code> is set to deal with decimal points, you can already suspect that there is another way to deal with files that have decimal commas./p>p>The slightly different function code>read.delim2()/code> can be used for those files:/p>ul> li>a hrefhttps://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r ng-class{dcl-active: isActiveLeftTab(usercode)} ng-clickactivateLeftTab(usercode)>script.R/a>/li> li> /li> li> /li>/ul>textarea autocapitalizeoff autocorrectoff spellcheckfalse wrapoff>/textarea>p>1/p>p>2/p>p>3/p>p>4/p>p>5/p>p>6/p>p>7/p>p>8/p>p>9/p>p>10/p>p>11/p>p>12/p>p>13/p>p>14/p>p>15/p>p>16/p>p>17/p>p>18/p>p># Load in the data/p>p>df <- read.delim2(https://s3.amazonaws.com/assets.datacamp/p>p>.com/blog_assets/scores_timed4.txt,/p>p>header FALSE,/p>p>sep \t,/p>p>dec .,/p>p>row.names c(M, N, O),/p>p>col.names c(X, Y, Z, A,B),/p>p>colClasses c(rep(integer, 2),/p>p>date,/p>p>numeric,/p>p>character),/p>p>fill TRUE,/p>p>strip.white TRUE,/p>p>na.strings EMPTY,/p>p>skip 2)/p>p># Print the data/p>p>print(df)/p>ul> li>a hrefhttps://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r ng-class{dcl-active: isActiveRightTab(console)} ng-clickactivateRightTab(console)>R Console/a>/li> li> /li>/ul>textarea autocapitalizeoff autocorrectoff spellcheckfalse wrapoff>/textarea>p>>/p>p>button href/ ng-clickexecute() submit-disable tooltip-placementtop uib-tooltipExecute Code>Run/button>/p>p>strong>Note/strong> that the code>read.delim2()/code> function uses a decimal comma as the decimal mark. An example of the use of a decimal comma is 3,1415./p>p>b>Tip/b>: for more interesting information on the decimal mark usage, illustrated with a a hrefhttp://www.rdocumentation.org/packages/googleVis/functions/googleVis-package>googleVis/a> visualization, read our a hrefhttps://www.datacamp.com/community/tutorials/decimal-comma-or-decimal-point-a-googlevis-visualization>blog post/a>./p>p>In the function above, the code>skip/code> argument specifies that the first two rows of the dataset are not read into R. Secondly, code>colClasses/code> allows you to specify a vector of classes for all columns of your data set. In this case, the data set has give columns, with the first two of type integer, replicating the class “integer” twice, the second of “date”, the third of “numeric” and lastly, the fourth of “character”. The replication of the integer type for the two first columns is indicated by the code>rep/code> argument. Also, the separator has been defined as code>\t/code>, an escape code that designates the horizontal tab./p>p>The code>read.delim2()/code> function that was defined above was applied to the following data set, which you also used in the exercise above:/p>pre>code>ID SCORE TIME DECIMAL TIME CLASS1 6 12:01:03 0.50 WORST2 16 07:42:51 0.32 BEST3 19 12:01:29 0.50 4 13 03:22:50 0.14 EMPTY5 8 09:30:03 0.40 WORST/code>/pre>p>However, you will get an error when you try to force the third column to be read in as a date. It will look like this:/p>pre>code>Error in methods::as(datai, colClassesi) : no method or default for coercing character to date/code>/pre>p>In other words, when executing the above code>read.delim()/code> function, the time attribute is interpreted to be of the type character, which can not be converted to “date”./p>p>The reason of this interpretation is probably due to the fact that the date wasn’t defined as it should have been: only hours, minutes and seconds are given in this data set./p>p>On top of that, they’re given in a special format that isn’t recognized as standard./p>p>This is why you can first better read it in as a character, by replacing “date” by “character” in the code>colClasses/code> argument, and then run the following command:/p>ul> li>a hrefhttps://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r ng-class{dcl-active: isActiveLeftTab(usercode)} ng-clickactivateLeftTab(usercode)>script.R/a>/li> li> /li> li> /li>/ul>textarea autocapitalizeoff autocorrectoff spellcheckfalse wrapoff>/textarea>p>1/p>p>2/p>p>3/p>p>4/p>p>5/p>p>6/p>p>7/p>p>8/p>p># Convert column `Z` to date/p>p>df$Z <- as.POSIXct(df$Z,format%H:%M:%S)/p>p># Print `df`/p>p>print(df)/p>p># Inspect the data types of `df`/p>p>str(df)/p>ul> li>a hrefhttps://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r ng-class{dcl-active: isActiveRightTab(console)} ng-clickactivateRightTab(console)>R Console/a>/li> li> /li>/ul>textarea autocapitalizeoff autocorrectoff spellcheckfalse wrapoff>/textarea>p>>/p>p>button href/ ng-clickexecute() submit-disable tooltip-placementtop uib-tooltipExecute Code>Run/button>/p>p>strong>Note/strong> that the code>as.POSIXct()/code> function allows you to specify your own format, in cases where you decided to use a specific time and date notation, just like in the data set above. Also note that when you inspect the result of code>str(df)/code>, your data types will be as they need to be./p>h4>Do It Yourself/h4>p>You can also write your own function to import your code>.csv/code> and code>.txt/code> files. Usecode>function()/code> to do this:/p>pre>code>df <- function(x) read.delim(x)/code>/pre>p>Next, you can define a new function, code>read.delim()/code>, that takes an code>x/code> as an argument. You then want to make sure that code>x/code> will be completed with a path that leads to your data set:/p>ul> li>a hrefhttps://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r ng-class{dcl-active: isActiveLeftTab(usercode)} ng-clickactivateLeftTab(usercode)>script.R/a>/li> li> /li> li> /li>/ul>textarea autocapitalizeoff autocorrectoff spellcheckfalse wrapoff>/textarea>p>1/p>p>2/p>p>3/p>p>4/p>p>5/p>p># Load in the data/p>p>data <- ..(https://s3.amazonaws.com/assets.datacamp.com/p>p>/blog_assets/test.txt)/p>p># Print the data/p>p>print(....)/p>ul> li>a hrefhttps://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r ng-class{dcl-active: isActiveRightTab(console)} ng-clickactivateRightTab(console)>R Console/a>/li> li> /li>/ul>textarea autocapitalizeoff autocorrectoff spellcheckfalse wrapoff>/textarea>p>>/p>p>button href/ ng-clickshowSolutionTab() ng-showsolutionButtonShown tooltip-placementtop uib-tooltipShow Solution>Solution/button>button href/ ng-clickexecute() submit-disable tooltip-placementtop uib-tooltipExecute Code>Run/button>/p>p>If you want to combine the two previous steps together to avoid the need to type the drive, the directory or the file’s extension, you already define some arguments of the code>read.delim()/code> function in the first step:/p>pre>code>df <- function(x) read.delim(paste(<location of the files folder>, x, .txt, sep))df(<Your files name>)/code>/pre>p>In this case, you already concatenate the location of your file’s folder, code>x/code>, your file’s extension and the field separator character in code>read.delim()/code>. This saves you some time every time you want to import your file, because you only need to fill in code>x/code>: this is just the file’s name without its extension, since you already specified it in your function’s definition./p>p>b>Tip/b>: don’t forget to end your first argument of the function with a code>//code>! Read further to learn more about why this is so important./p>p>strong>Note/strong> that the code>sep/code> argument indicates the separator for the function code>read.delim()/code> and not for your data set. This is why the function above only works well with tab-delimited text files. If you want to import files with code>.csv/code> extension, for example, you can do this with:/p>pre>code>df <- function(x) read.delim(paste(<location of the files folder>, x, .txt, sep), sep,)df(<Your files name>)/code>/pre>p>strong>Remember/strong> that the arguments that are passed to the code>read.table()/code> function can also be used in code>read.csv()/code>, code>read.csv2()/code>, code>read.delim()/code> and code>read.delim2()/code>./p>p>You can see one more code>sep/code> argument added to the original function, which is an argument to the code>read.delim()/code> function itself and not to the code>paste()/code> function: it does not specify anything about the file’s location, but is used to specify how the file should be read in./p>p>To see this more clearly, try using this command, where the second code>sep/code> argument has been omitted:/p>pre>code>df <- function(x) read.delim(paste(<location of the files folder>, x, .txt, sep,))df(<Your files name>)/code>/pre>p>You will most certainly get an error that relates to the file path to which you refer: the name in combination with the extension, and possibly the path, that were put into the function is separated by a comma, are most certainly the cause of this./p>p>This example clearly illustrates the issue at hand:/p>pre>code>In file(file, rt) : cannot open file C:/Users/SomeonesName/Desktop,iris,.txt: No such file or directory/code>/pre>p>You see that instead of a white space, two commas are included into the file path. This type of path will never be understood by R. You will need to add a blackslash to the location of your file’s folder, while adjusting at the same time the separator field character to a white space to solve this error./p>p>b>Tip/b>: you can make even more specifications to the original function by adding more arguments in the same way as you did for the second code>sep/code> argument./p>h3>Packages/h3>p> /p>p>Not only can you import files through basic R commands, but you can also do this by loading in packages and then using the packages’ functions. In practice, any R users limit themselves to using the basic R commands to save time and effort./p>h3>Further Workspace Prepping/h3>p>strong>Remember/strong> that, if you do want to follow this approach, you need to install your packages: you need to do this right after setting your work directory, before entering any other command into the console. You can simply put the following:/p>pre>code>install.packages(<name of the package>)/code>/pre>p>When you have gone through the installation, you can just type in the following to activate the package into your workspace:/p>pre>code>library(<name of the package>)/code>/pre>p>To check if you already installed the package or not, type in the following:/p>pre>code>any(grepl(<name of your package>, installed.packages()))/code>/pre>p>a hrefhttp://www.datacamp.com/courses target_blank>img altR import Excel srchttp://community.datacamp.com.s3.amazonaws.com/community/production/ckeditor_assets/pictures/293/content_blog_banner.png />/a>/p>h4 idxlconnect>XLConnect/h4>p> /p>p>XLConnect is a “comprehensive and cross-platform R package for manipulating Microsoft Excel files from within R”. You can make use of functions to create Excel workbooks, with multiple sheets if desired, and import data to them. Read in existing Excel files into R through:/p>pre>code>df <- readWorksheetFromFile(<file name and extension>, sheet1, startRow 4, endCol 2)/code>/pre>p>The code>sheet/code> argument specifies which sheet you exactly want to import into R. You can also add more specifications, such as code>startRow/code> or code>startCol/code> to indicate from which row or column the data set should be imported, or code>endRow/code> or code>endCol/code> to indicate the point up until where you want the data to be read in. Alternatively, the argument code>region/code> allows you to specify a range, like code>A5:B5/code> to indicate starting and ending rows and columns./p>p>Alternatively, you can also load in a whole workbook with the code>loadWorkbook()/code> function, to then read in worksheets that you desire to appear as data frames in R through code>readWorksheet()/code>:/p>pre>code># Load in Workbookwb <- loadWorkbook(<name and extension of your file>)# Load in Worksheetdf <- readWorksheet(wb, sheet1) /code>/pre>p>Of course, code>sheet/code> is not the only argument that you can pass to code>readWorksheet()/code>. If you want more information about the package or about all the arguments that you can pass to the code>readWorkSheetFromFile()/code> function or to the two alternative functions that were mentioned, you can visit the package’s a hrefhttp://www.rdocumentation.org/packages/XLConnect>RDocumentation page/a>./p>h4 idxlsx>xlsx Package/h4>p> /p>p>This is a second package that you can use to load in Excel files in R. The function to read in the files is just the same as the basic code>read.table()/code> or its variants:/p>pre>code>df <- read.xlsx(<name and extension of your file>, sheetIndex 1)/code>/pre>p>strong>Note/strong> that it is necessary to add a sheet name or a sheet index to this function. In the example above, the first sheet of the Excel file was assigned./p>p>If you have a bigger data set, you might get better performance when using the code>read.xlsx2()/code> function:/p>pre>code>df <- read.xlsx2(<name and extension of your file>, sheetIndex 1, startRow2, colIndex 2)/code>/pre>p>Fun fact: according to the package information, the function achieves a performance of an order of magnitude faster on sheets with 100,000 cells or more. This is because this function does more work in Java./p>p>strong>Note/strong> that the command above is the exact same that you can use in the code>readWorkSheetFromFile()/code> from the XLConnect package and that it specifies that you start reading the data set from the second row onwards. Additionally, you might want to specify the code>endRow/code>, or you can limit yourself to code>colIndex/code> and code>rowIndex/code> to indicate the rows and columns you want to extract./p>p>Just like XLConnect, the xlsx package can do a lot more than just reading data: it can also be used to write data frames to Excel workbooks and to manipulate the data further into those files. If you would also like to write a data frame to an Excel workbook, you can just use code>write.xlsx()/code> and code>write.xlsx2()/code>./p>p>strong>Note/strong> the analogy with code>read.xlsx()/code> and code>read.xlsx2()/code>!/p>p>For example:/p>pre>code>write.xlsx(df, df.xlsx, sheetNameData Frame)/code>/pre>p>The function requires you first to specify what data frame you want to export. In the second argument, you specify the name of the file that you are outputting./p>p>strong>Note/strong> that this file will appear in the folder that you designated as your working directory./p>p>If, however, you want to write the data frame to a file that already exists, you can execute the following command:/p>pre>code>write.xlsx(df, <name and extension of your existing file>, sheetNameData Frame appendTRUE)/code>/pre>p>strong>Note/strong> that, in addition to changing the name of the output file, you also add the argument code>append/code> to indicate that the data frame sheet should be added to the given file./p>p>For more details on this package and its functions, go to a hrefhttp://www.rdocumentation.org/packages/xlsx>this page/a>./p>h4 idgdata>gdata Package/h4>p> /p>p>This package provides another cross-platform solution to load in Excel files into R. It contains various tools for data manipulation, among which the code>read.xls()/code> function, which is used as follows:/p>pre>code>df <- read.xls(<name of your file.xls>, perl<location of perl.exe file on your pc)/code>/pre>p>The code>read.xls()/code> function translates the named Excel File into a temporary code>.csv/code> or code>.tab/code> file, making use of Perl in the process./p>p>Perl is a programming language and stands for “Practical Extraction and Report Language”. It comes standard on Linux and MAC OS X. If you are using Windows and you do not have it installed on your computer, you can download ActiveState Perl a hrefhttp://www.perl.org/>here/a>. For more information on how to fill in the code>perl/code> argument, visit a hrefhttp://www.rdocumentation.org/packages/gdata/functions/read.xls>this page/a>./p>p>strong>Note/strong> that you don’t need to know how to use Perl, you just need to be able to retrieve its location on your computer! :)/p>p>Even though the function seems to explicitly target older versions of Excel spreadsheets by the reference to code>.xls/code>, but it also accepts code>.xlsx/code> files as input./p>p>strong>Note/strong> that you actually need to specify the exact Perl path in the code>perl/code> argument to execute this command without prompting any errors, only if the working version of Perl is not in the executable search path. In other words, when the code>read.xls()/code> funtion is executed, R searches the path to the Excel file and hopes to find Perl on its way./p>p>If this is not the case, R will return an error. A possible completion of the code>perl/code>argument can look like this, for example:/p>pre>code>df <- read.xls(iris.xls, sheet1, perlC:/Perl/bin/perl.exe)/code>/pre>p>This package also offers other functions, such as code>xls2sep()/code> and its wrappers code>xls2csv()/code>, code>xls2tab()/code> and code>xls2tsv()/code> to return temporary files in .csv, .tab, .tsv files or any other specified format, respectively./p>p>These functions work exactly the same as code>read.xls()/code>:/p>pre>code>df <- xls2csv(<name of your file>.xls, sheet 1, na.strings EMPTY, perl<location of Perl>)/code>/pre>p>The output of this function, code>df/code>, will contain the temporary code>.csv/code> file of the first sheet of the code>.xls/code> or code>.xlsx/code> file with stringS “EMPTY” defined as NA values. You can subsequently read in this temporary file with any of the previous functions that is fit to read in files with the code>.csv/code> extension, like code>read.csv()/code>:/p>pre>code>df <- read.csv(df)/code>/pre>p>strong>Note/strong> that any additional arguments for code>read.xls()/code>, code>xls2sep()/code> and its wrappers are the same as the ones that you use for code>read.table()/code>. The defaults of these arguments as set as the ones for code>read.csv()/code>: the code>header/code> and code>fill/code> arguments set as code>TRUE/code> by default and the separator symbol is “,”./p>p>If you want to make sure which file formats are supported by the code>read.xls()/code> function, you can use the code>xlsFormats()/code> function:/p>pre>code>xlsFormats(perl<location of Perl>)/code>/pre>h4 idreadxl>readxl Package/h4>p> /p>p>A more recent entrant into the ranks of the code>.xlsx/code> and code>.xls/code> data importing libraries is Hadley Wickham’s 2016 code>readxl/code> package. By leveraging R’s established code>RapidXML/code> C++ library, code>readxl/code> can increase both the speed and the ease of loading excel documents into R./p>p>Since no external code libraries (e.g.: code>java jdk/code> or code>ActiveState PERL/code>) are required, the setup is extremely simple./p>p>Additionally, as the code>readxl/code> package is already bundled into the increasingly foundational code>tidyverse/code> package, the more recent generations of R users may be delighted to discover that they have already installed everything they need to start effortlessly pulling in excel docs!/p>p>Whether you have installed code>tidyverse/code> (the suite of code>dplyr/code>,code>tidyr/code>, and code>ggplot2/code> libraries that includes code>readxl/code>), or you have chosen to install the solitary code>readxl/code> package from CRAN or GitHub, you will still need to explcitly load the code>readxl/code> library in by name - since it is not one of the core code>tidyverse/code> packages./p>p>Easy enough: at the beginning of your script, simply add code>library(readxl)/code> to the list of libraries you are loading./p>p>code>readxl/code>’s functions and arguments are simple and straightforward. To read in the first tab of your excel sheet, simply enclose your file name inside the code>read_excel()/code> function./p>pre>code>df <- read_excel(<name and extension of your file>)/code>/pre>p>In other words, the default is to read the first sheet(tab) in the specified workbook. If your workbook is a little more complicated than this, you can crack it open and list the sheet names with the following code>excel_sheets/code> function:/p>pre>code>excel_sheets(<name and extension of your file>)/code>/pre>p>From there, you can then choose which sheet to read with the code>sheet/code> argument: either referencing the sheet’s name or its index (number)./p>p>References to sheet names are direct and therefore do require quotes:/p>pre>code>read_excel(<name and extension of your file>, sheetSheet 3)/code>/pre>p>Sheet indexing starts at 1, so alternatively, you could load in the third tab in with the following code:/p>pre>code>read_excel(<name and extension of your file>, sheet3)/code>/pre>p>In the code>read_excel/code> function, if the code>col_names/code> argument is left to its default value of code>True/code>, you will import the first line of the worksheet as the header names. In line with code>tibble/code> and code>tidyverse/code> standards, the code>readxl/code> column header names are formed exactly as they were written in Excel./p>p>This results in behaviour that is much more in line with the expectations of Excel and tidy data users./p>p>If you want to convert column names to classic Base R valid identifiers, base R’s code>make.names()/code> is able to quickly perform the necessary conversions. Leading numbers and symbols will be prefixed or replaced with code>X/code>’s and spaces will be replaced with code>./code>’s./p>p>Alternatively, if you wish to skip using header specified column-names and instead “number columns sequentially from X1 to Xn”, then set this argument to false: i.e. code>col_names FALSE/code>/p>p>Leaving the code>col_types/code> argument in its default state will cause types to be automatically registered when code>read_excel()/code> samples the first 10 rows and assigns each column to the most applicable class. As with code>read.table/code>’s code>colClasses/code> argument that you’ve seen earlier, you can also manually classify column types on entry./p>p>As before, you will construct a complete vector specifying types for each column; however, this time be sure to use the following classification options of “blank”, “numeric”, “date”, or “text”./p>p>For example, if you want to set a three column excel sheet to contain the data as dates in the first column, characters in the second, and numeric values in the third, you would need the following lines of code:/p>pre>code>read_excel(<name and extension of your file>, col_types c(date, numeric, text))/code>/pre>p>While this is easy enough for tall datasets, with wider dataframes you want to transform only a few column types after the import using code>as.character/code> or code>as.numeric/code> type mutations./p>p>If you wish to avoid all issues from the beginning, and bring all your excel data into R in the most encompassing way possible, you can simply specify each column to be cast as characters. For a ten-column sheet this would look like the following:/p>pre>code>read_excel(<name and extension of your file>, col_types rep(text, 10))/code>/pre>p>For the final of the most useful additional arguments available in code>read_excel/code>, if you wish to skip rows before setting column names, there is the code>skip/code> argument. This works exceptionally well for dealing with those intricately crafted database reports you enjoy so much./p>p>Let’s say, for example, those daily reports you receive with a lovely logo, five rows of report generation details, and the column headers in the sixth row. Getting this imported quickly and tidily into R requires only the following code:/p>pre>code>read_excel(<name and extension of your file>, skip 5)/code>/pre>p>For more details on this package and its functions, please see a hrefhttps://www.rdocumentation.org/packages/readxl/versions/0.1.1>this page/a>./p>/nav>h2 idstep5>Step Five. Final Checkup/h2>p> /p>p>After executing the command to read in the file in which your data set is stored, you might want to check one last time to see if you imported the file correctly./p>p>strong>Remember/strong> to type in the following command to check the attributes’ data types of your data set:/p>pre>code>str(<name of the variable in which you stored your data>)/code>/pre>p>Alternatively, you can also type in:/p>pre>code>head(<name of the variable in which you stored your data>)/code>/pre>p>By executing this command, you will get to see the first rows of your data frame. This will allow you to check if the data set’s fields were correctly separated, if you didn’t forget to specify or indicate the header, etc./p>p>strong>Note/strong> that you can add an argument code>n/code> to code>head()/code> to specify the number of data frame rows you want to return, like in: code>head(df, 5)/code> to return the first five lines of the data frame code>df/code>./p>h2 idstep6>Step Six. There And Back Again/h2>p> /p>p>Importing your files is only one small but essential step in your endeavours with R. From this point, you are ready to start analyzing, manipulating or visualizing the imported data./p>p>Do you want to continue already and get started with the data of your newly imported Excel file? Check out our tuturials for beginners on a hrefhttps://www.datacamp.com/community/tutorials/make-histogram-basic-r>histograms/a> and a hrefhttps://www.datacamp.com/community/tutorials/machine-learning-in-r>machine learning/a>./p>p>em>This tutorial was written in collaboration with a hrefhttps://www.linkedin.com/in/jens-leerssen-a0369620/>Jens Leerssen/a>, Data Quality Analyst with a passion for resolving data quality issues at scale in large, documentation sparse environments./em>/p> /div> /div> /div> div classclear>/div> /div> !--Modules ContentBottom--> !--End Modules ContentBottom-->/div>div classclear>/div>!--End Content width and show component area--> /div>div classclear>/div> /div>/div> /div> div idcontainer_bottom1_modules classj51container>div classwrapper960> div idbottom_modules classblock_holder> div idwrapper_bottom-1 classblock_holder_margin> div classbottom-1 stylewidth:100%;> div classmodule > div classmodule_surround> div classmodule_content> !-- Content Background Colour -->div classgridgallery>ul classgrid> li classj51gridgallery> a href/index.php/placerat-facer-possim target_self > h3 stylecolor:#656565>Placerat facer possim/h3> figure classanimate fadeInLeft> img src/images/homepage/image1.png altimage1 > figcaption stylebackground-color: rgba(255,255,255, 0.7 ); > span stylecolor:#212121; >Vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui et everti tamquam suavitate mea./span> /figcaption> /figure> /a> /li> li classj51gridgallery> a href/index.php/quam-nunc-putamus target_self > h3 stylecolor:#656565>Quam nunc putamus/h3> figure classanimate fadeInRight> img src/images/homepage/image2.png altimage2 > figcaption stylebackground-color: rgba(255,255,255, 0.7 ); > span stylecolor:#212121; >Blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Cras non sem sem, at eleifend mi./span> /figcaption> /figure> /a> /li> li classj51gridgallery> a href/index.php/velit-esse-molestie-consequat target_self > h3 stylecolor:#656565>Velit esse molestie/h3> figure classanimate fadeInLeft> img src/images/homepage/image3.png altimage3 > figcaption stylebackground-color: rgba(255,255,255, 0.7 ); > span stylecolor:#212121; >Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat vero eros et accumsan ./span> /figcaption> /figure> /a> /li> li classj51gridgallery> a href/index.php/vivamus-sit-amet-ante target_self > h3 stylecolor:#656565>Et everti tamquam/h3> figure classanimate fadeInRight> img src/images/homepage/image4.png altimage4 > figcaption stylebackground-color: rgba(255,255,255, 0.7 ); > span stylecolor:#212121; >Oportere rationibus sed ea, vix et zril aeterno civibus. Libris melius aperiam et sit, ei mei modo tation sententiae. /span> /figcaption> /figure> /a> /li>/ul>/div>div style clear:both;>/div> /div> /div> /div> /div> div classclear>/div> /div> /div> /div>/div> /div> /div> div classcontainer_spacer4>div classwrapper960>/div>/div> div idcontainer_base classj51container> div classwrapper960 group-border-shadow> div id base1_modules classblock_holder> /div> div id base2_modules classblock_holder> div idwrapper_base-2 classblock_holder_margin> div classbase-2 stylewidth:25%;> div classmodule > div classmodule_surround> div classmodule_header> h3 class>Sample Menu/h3> span classhairline>/span> /div> div classmodule_content> ul classmenu>li classitem-516>a href/index.php/placerat-facer-possim >Placerat facer possim/a>/li>li classitem-517>a href/index.php/quam-nunc-putamus >Quam nunc putamus/a>/li>li classitem-518>a href/index.php/velit-esse-molestie-consequat >Velit esse molestie consequat/a>/li>li classitem-530>a href/index.php/vivamus-sit-amet-ante >Vivamus sit amet ante /a>/li>/ul> /div> /div> /div> /div> div classbase-2 stylewidth:25%;> div classmodule > div classmodule_surround> div classmodule_header> h3 class>Get in Touch!/h3> span classhairline>/span> /div> div classmodule_content> div classcustom > div classmodule_content>div classcustom>p>span classfa-phone>Telephone:/span> +(33)-5-67-77-12-00br />span classfa-envelope>Email:/span>xavier.alacoque(@)gmail.combr />span classfa-link>Website:/span> a hrefhttp://www.joomla51.com>d/a>igitalife.pro/p>hr />div>CHU de Toulouse,/div>div>Hopital des Enfants/div>div>330 , avenue de grande bretagne,/div>div>TSA 70031, 31059 ,/div>div>Toulouse cedex 09/div>div>hr />p> /p>/div>/div>/div>/div> /div> /div> /div> /div> div classbase-2 stylewidth:25%;> div classmodule > div classmodule_surround> div classmodule_header> h3 class>Portfolio Highlights/h3> span classhairline>/span> /div> div classmodule_content> script typetext/javascript> // j51thumbs animationsjQuery(function () { jQuery(.j51thumbs i).animate({ opacity: 0 }, { duration: 300, queue: false }); jQuery(.j51thumbs).parent().hover( function () {}, function () { jQuery(.j51thumbs i).animate({ opacity: 0 }, { duration: 300, queue: false }); }); jQuery(.j51thumbs i).hover( function () { jQuery(this).animate({ opacity: 0 }, { duration: 300, queue: false }); jQuery(.j51thumbs i).not( jQuery(this) ).animate({ opacity: 0.4 }, { duration: 300, queue: false }); }, function () { } );});/script> div classj51thumbs391>div classj51thumbs>div classgallery> a classj51Box stylemargin:3px; rellightbox href/images/portfolio-base/image01.jpg> img src/images/portfolio-base/thumbs/image01.jpg stylepadding:3px; background-color:#e0e0e0; border:1px solid #fafafa; altimages/portfolio-base/image01.jpg /> i styleleft: 4px; top: 4px; height: 60px; width: 60px;>/i>/a> a classj51Box stylemargin:3px; rellightbox href/images/portfolio-base/image02.jpg> img src/images/portfolio-base/thumbs/image02.jpg stylepadding:3px; background-color:#e0e0e0; border:1px solid #fafafa; altimages/portfolio-base/image02.jpg /> i styleleft: 4px; top: 4px; height: 60px; width: 60px;>/i>/a> a classj51Box stylemargin:3px; rellightbox href/images/portfolio-base/image03.jpg> img src/images/portfolio-base/thumbs/image03.jpg stylepadding:3px; background-color:#e0e0e0; border:1px solid #fafafa; altimages/portfolio-base/image03.jpg /> i styleleft: 4px; top: 4px; height: 60px; width: 60px;>/i>/a> a classj51Box stylemargin:3px; rellightbox href/images/portfolio-base/image04.jpg> img src/images/portfolio-base/thumbs/image04.jpg stylepadding:3px; background-color:#e0e0e0; border:1px solid #fafafa; altimages/portfolio-base/image04.jpg /> i styleleft: 4px; top: 4px; height: 60px; width: 60px;>/i>/a> a classj51Box stylemargin:3px; rellightbox href/images/portfolio-base/image05.jpg> img src/images/portfolio-base/thumbs/image05.jpg stylepadding:3px; background-color:#e0e0e0; border:1px solid #fafafa; altimages/portfolio-base/image05.jpg /> i styleleft: 4px; top: 4px; height: 60px; width: 60px;>/i>/a> a classj51Box stylemargin:3px; rellightbox href/images/portfolio-base/image06.jpg> img src/images/portfolio-base/thumbs/image06.jpg stylepadding:3px; background-color:#e0e0e0; border:1px solid #fafafa; altimages/portfolio-base/image06.jpg /> i styleleft: 4px; top: 4px; height: 60px; width: 60px;>/i>/a> a classj51Box stylemargin:3px; rellightbox href/images/portfolio-base/image07.jpg> img src/images/portfolio-base/thumbs/image07.jpg stylepadding:3px; background-color:#e0e0e0; border:1px solid #fafafa; altimages/portfolio-base/image07.jpg /> i styleleft: 4px; top: 4px; height: 60px; width: 60px;>/i>/a> a classj51Box stylemargin:3px; rellightbox href/images/portfolio-base/image08.jpg> img src/images/portfolio-base/thumbs/image08.jpg stylepadding:3px; background-color:#e0e0e0; border:1px solid #fafafa; altimages/portfolio-base/image08.jpg /> i styleleft: 4px; top: 4px; height: 60px; width: 60px;>/i>/a> a classj51Box stylemargin:3px; rellightbox href/images/portfolio-base/image09.jpg> img src/images/portfolio-base/thumbs/image09.jpg stylepadding:3px; background-color:#e0e0e0; border:1px solid #fafafa; altimages/portfolio-base/image09.jpg /> i styleleft: 4px; top: 4px; height: 60px; width: 60px;>/i>/a> /div>/div>/div> div classclear>/div> /div> /div> /div> /div> div classbase-2 stylewidth:25%;> div classmodule > div classmodule_surround> div classmodule_header> h3 class>Join our Newsletter/h3> span classhairline>/span> /div> div classmodule_content> div classcustom > p>Sign up for our newsletter for all thebr />latest news and information/p>!-- Begin MailChimp Signup Form -->div idmc_embed_signup styletext-align:center>form actionhttp://joomla51.us2.list-manage.com/subscribe/post?udb9b777e6867104a226cafe90&id565ea6d9ac classvalidate idmc-embedded-subscribe-form methodpost namemc-embedded-subscribe-form novalidate target_blank>input classemail idmce-EMAIL nameEMAIL placeholderemail address required stylefloat:left; typeemail value /> input classbutton btn idmc-embedded-subscribe namesubscribe stylefloat:left; typesubmit valueSubscribe />div classclearfix> /div>/form>/div>!--End mc_embed_signup-->p> /p>/div> /div> /div> /div> /div> div classclear>/div> /div> /div> div> /div> /div>/div>div idcontainer_copyright classj51container> div classwrapper960> div idfootermenu> ul classmenu>li classitem-561>a classfa-user href/index.php/login onclickwindow.open(this.href,targetWindow,toolbarno,locationno,statusno,menubarno,scrollbarsyes,resizableyes);return false; >Login/a>/li>li classitem-464 current active>a classfa-home href/index.php >Home/a>/li>li classitem-566>a classfa-info-circle href/index.php/howto >HowTo/a>/li>li classitem-551 parent>a classfa-chart href/index.php/data-science >Data Sciences/a>/li>li classitem-560>a classfa-cloud-download href/index.php/big-data >Big Data/a>/li>li classitem-562>a classfa-gears (alias) href/index.php/theory >Theory/a>/li>li classitem-564>a classfa-bookmark href/index.php/references >References/a>/li>li classitem-563 parent>a classfa-desktop href/index.php/softwares >Softwares/a>/li>li classitem-565 parent>a classfa-code href/index.php/scripts >Scripts/a>/li>/ul> div classclear>/div> /div> div idcopyright> p>(C) Copyright 2016 - X. ALACOQUE/p> /div> div classclear>/div> /div>/div>/div>/body> /html>
Subdomains
Date
Domain
IP
ccvp.digitalife.pro
2015-06-03
108.175.157.36
louis.digitalife.pro
2026-02-15
162.215.118.73
www.digitalife.pro
2026-02-15
162.215.118.73
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]