<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>RstatisTik/RstatisTikPortal/RcourSe/FinalFunction/CombMoreDataFrames</title><revhistory><revision><revnumber>3</revnumber><date>2015-05-01 13:08:47</date><authorinitials>mandy.vogel@googlemail.com</authorinitials></revision><revision><revnumber>2</revnumber><date>2015-05-01 13:05:39</date><authorinitials>mandy.vogel@googlemail.com</authorinitials></revision><revision><revnumber>1</revnumber><date>2015-05-01 13:03:45</date><authorinitials>mandy.vogel@googlemail.com</authorinitials></revision></revhistory></articleinfo><section><title>Introduction</title><section><title>Remember: Implicit Loops</title><para>A common application of loops is  to apply a function to each element of a set of values and collect the results in a single structure. In R this is done by the functions: </para><itemizedlist><listitem><para>lapply() - works on elements of a list </para></listitem><listitem><para>sapply() - same as lapply but simplify results </para></listitem><listitem><para>apply() - works on rows or colums of a matrix or a data frame (or more general on arrays) </para></listitem><listitem><para>tapply() - works on groups defined by an index </para></listitem></itemizedlist></section><section><title>Exercises</title><para>Given the two R object m and l below use *  use lapply() to get the class and the length of each element of l (two steps) *  apply() to get the maximum of each column in m </para><programlisting format="linespecific" language="highlight" linenumbering="numbered" startinglinenumber="1"><![CDATA[> ]]><methodname><![CDATA[m]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[matrix]]></methodname><![CDATA[(1:100, ]]><methodname><![CDATA[nrow]]></methodname><![CDATA[=10)]]>
<![CDATA[> ]]><methodname><![CDATA[l]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[list]]></methodname><![CDATA[(]]><methodname><![CDATA[a]]></methodname><![CDATA[=1:10,]]><methodname><![CDATA[b]]></methodname><![CDATA[=]]><methodname><![CDATA[rep]]></methodname><![CDATA[(]]><methodname><![CDATA[c]]></methodname><![CDATA[(]]><token><![CDATA[T]]></token><![CDATA[,]]><token><![CDATA[F]]></token><![CDATA[),2),]]><methodname><![CDATA[c]]></methodname><![CDATA[=]]><symbol><![CDATA[letters]]></symbol><![CDATA[)  ]]>
</programlisting></section><section><title>read one file</title><programlisting format="linespecific" language="highlight" linenumbering="numbered" startinglinenumber="1"><![CDATA[> ]]><methodname><![CDATA[file]]></methodname><![CDATA[ <- ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[../session1/session1data/pre001.txt"]]></phrase>
<![CDATA[> ]]><methodname><![CDATA[pre1]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[read.file]]></methodname><![CDATA[(]]><methodname><![CDATA[file]]></methodname><![CDATA[,]]><methodname><![CDATA[skip]]></methodname><![CDATA[=3)]]>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[read ../session1/session1data/pre001.txt"]]></phrase>
<![CDATA[> ]]><methodname><![CDATA[file]]></methodname><![CDATA[ <- ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[data/pretest/pre_001.txt"]]></phrase>
<![CDATA[> ]]><methodname><![CDATA[pre1v2]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[read.file]]></methodname><![CDATA[(]]><methodname><![CDATA[file]]></methodname><![CDATA[,]]><methodname><![CDATA[skip]]></methodname><![CDATA[=0)]]>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[read ../session2/data/pretest/pre_001.txt"]]></phrase>
</programlisting></section><section><title>read several files</title><itemizedlist><listitem><para>we used dir() (with the arguments pattern, recursive, full.path) to get a list of file names we wanted to read in  </para></listitem><listitem><para>we learned about lapply() which takes a list l and a function f to perform the function f on every element of the list l </para></listitem><listitem><para>so now we combine what we learned to read all files at once </para></listitem></itemizedlist></section><section><title>get files names</title><programlisting format="linespecific" language="highlight" linenumbering="numbered" startinglinenumber="1"><![CDATA[> ]]><methodname><![CDATA[files]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[dir]]></methodname><![CDATA[(]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[../session2/data"]]></phrase><![CDATA[,]]><methodname><![CDATA[full.names]]></methodname><![CDATA[ = ]]><token><![CDATA[T]]></token><![CDATA[, ]]>
<![CDATA[+                ]]><methodname><![CDATA[recursive]]></methodname><![CDATA[ = ]]><token><![CDATA[T]]></token><![CDATA[,]]><methodname><![CDATA[pattern]]></methodname><![CDATA[ = ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[[0-9]{3}\\.txt$"]]></phrase><![CDATA[)]]>
<![CDATA[> ]]><methodname><![CDATA[files]]></methodname>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[../session2/data/posttest/post_001.txt"]]></phrase><![CDATA[   ]]>
<methodname><![CDATA[[2]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[../session2/data/posttest/post_002.txt"]]></phrase><![CDATA[   ]]>
<methodname><![CDATA[[3]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[../session2/data/posttest/post_003.txt"]]></phrase><![CDATA[   ]]>
<methodname><![CDATA[[4]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[../session2/data/posttest/post_004.txt"]]></phrase><![CDATA[   ]]>
<methodname><![CDATA[[5]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[../session2/data/posttest/post_005.txt"]]></phrase><![CDATA[   ]]>
<methodname><![CDATA[[6]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[../session2/data/posttest/post_006.txt"]]></phrase><![CDATA[   ]]>
<methodname><![CDATA[[7]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[../session2/data/posttest/post_007.txt"]]></phrase><![CDATA[   ]]>
</programlisting></section><section><title>read in files</title><itemizedlist><listitem><para>source the file containing our function read.file() </para></listitem><listitem><para>use lapply() to use read.file() on every entry of the list of file names </para></listitem></itemizedlist><programlisting format="linespecific" language="highlight" linenumbering="numbered" startinglinenumber="1"><![CDATA[> ]]><methodname><![CDATA[source]]></methodname><![CDATA[(]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[function.r"]]></phrase><![CDATA[)]]>
<![CDATA[> ]]><methodname><![CDATA[df.list]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[lapply]]></methodname><![CDATA[(]]><methodname><![CDATA[files]]></methodname><![CDATA[,]]><methodname><![CDATA[read.file]]></methodname><![CDATA[,]]><methodname><![CDATA[skip]]></methodname><![CDATA[=0)]]>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[read ../session2/data/posttest/post_001.txt"]]></phrase>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[read ../session2/data/posttest/post_002.txt"]]></phrase>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[read ../session2/data/posttest/post_003.txt"]]></phrase>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[read ../session2/data/posttest/post_004.txt"]]></phrase>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[read ../session2/data/posttest/post_005.txt"]]></phrase>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[read ../session2/data/posttest/post_006.txt"]]></phrase>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[read ../session2/data/posttest/post_007.txt"]]></phrase>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[read ../session2/data/posttest/post_008.txt"]]></phrase>
</programlisting></section><section><title>Result</title><itemizedlist><listitem><para>what we get is a list df.list containing the results: every element of the list is a data frame if read.file() read in successfully the respective file </para></listitem><listitem><para>so our variable files contains 195 file names </para></listitem></itemizedlist><programlisting format="linespecific" language="highlight" linenumbering="numbered" startinglinenumber="1"><![CDATA[> ]]><methodname><![CDATA[length]]></methodname><![CDATA[(]]><methodname><![CDATA[files]]></methodname><![CDATA[)]]>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ 195  ]]>
</programlisting><itemizedlist><listitem><para>so df.list contains 195 elements </para></listitem></itemizedlist><programlisting format="linespecific" language="highlight" linenumbering="numbered" startinglinenumber="1"><![CDATA[> ]]><methodname><![CDATA[length]]></methodname><![CDATA[(]]><methodname><![CDATA[df.list]]></methodname><![CDATA[)]]>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ 195  ]]>
</programlisting><itemizedlist><listitem><para>we can check the class of each of these results again with sapply() </para></listitem></itemizedlist><programlisting format="linespecific" language="highlight" linenumbering="numbered" startinglinenumber="1"><![CDATA[> ]]><methodname><![CDATA[table]]></methodname><![CDATA[(]]><methodname><![CDATA[sapply]]></methodname><![CDATA[(]]><methodname><![CDATA[df.list]]></methodname><![CDATA[,]]><methodname><![CDATA[class]]></methodname><![CDATA[))]]>
<![CDATA[192          2   ]]>
</programlisting></section><section><title>Remember: Combining Data Frames</title><para>We learned about three basis functions to combine data frame </para><itemizedlist><listitem><para>rbind() - combine two data frames row wise </para></listitem><listitem><para>cbind() - combine two data frames column wise </para></listitem><listitem><para>merge() - combine two data with respect two one or more identifying columns </para></listitem><listitem><para>all of them are binary function </para></listitem><listitem><para>so you can not put more than two data frame into it </para></listitem><listitem><para>using only these function it would be a tedious and boring work to combine 192 data frames </para></listitem></itemizedlist></section><section><title>Reduce()</title><itemizedlist><listitem><para>is also a higher order function (functional) </para></listitem><listitem><para>Reduce() uses a binary function (like rbind() or merge()) to combine successively the elements of a given list </para></listitem><listitem><para>it can be used if you have not only two but many data frames </para></listitem></itemizedlist><section><title>Example</title><itemizedlist><listitem><para>first we make up 4 artifical data frames </para></listitem></itemizedlist><programlisting format="linespecific" language="highlight" linenumbering="numbered" startinglinenumber="1"><![CDATA[> (]]><methodname><![CDATA[d1]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[data.frame]]></methodname><![CDATA[(]]><methodname><![CDATA[id]]></methodname><![CDATA[=]]><symbol><![CDATA[LETTERS]]></symbol><methodname><![CDATA[[c]]></methodname><![CDATA[(1,2,3)]]><methodname><![CDATA[]]]></methodname><![CDATA[,]]><methodname><![CDATA[day1]]></methodname><![CDATA[=]]><methodname><![CDATA[sample]]></methodname><![CDATA[(10,3)))]]>
<methodname><![CDATA[id]]></methodname><![CDATA[ ]]><methodname><![CDATA[day1]]></methodname>
<![CDATA[1  ]]><methodname><![CDATA[A]]></methodname><![CDATA[    3]]>
<![CDATA[2  ]]><methodname><![CDATA[B]]></methodname><![CDATA[    1]]>
<![CDATA[3  ]]><methodname><![CDATA[C]]></methodname><![CDATA[    7]]>
<![CDATA[> (]]><methodname><![CDATA[d2]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[data.frame]]></methodname><![CDATA[(]]><methodname><![CDATA[id]]></methodname><![CDATA[=]]><symbol><![CDATA[LETTERS]]></symbol><methodname><![CDATA[[c]]></methodname><![CDATA[(1,3,5,6)]]><methodname><![CDATA[]]]></methodname><![CDATA[,]]><methodname><![CDATA[day2]]></methodname><![CDATA[=]]><methodname><![CDATA[sample]]></methodname><![CDATA[(10,4)))]]>
<methodname><![CDATA[id]]></methodname><![CDATA[ ]]><methodname><![CDATA[day2]]></methodname>
<![CDATA[1  ]]><methodname><![CDATA[A]]></methodname><![CDATA[    8]]>
<![CDATA[2  ]]><methodname><![CDATA[C]]></methodname><![CDATA[    2]]>
<![CDATA[3  ]]><methodname><![CDATA[E]]></methodname><![CDATA[    5]]>
<![CDATA[4  ]]><token><![CDATA[F]]></token><![CDATA[    3]]>
<![CDATA[> (]]><methodname><![CDATA[d3]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[data.frame]]></methodname><![CDATA[(]]><methodname><![CDATA[id]]></methodname><![CDATA[=]]><symbol><![CDATA[LETTERS]]></symbol><methodname><![CDATA[[c]]></methodname><![CDATA[(2,4:6)]]><methodname><![CDATA[]]]></methodname><![CDATA[,]]><methodname><![CDATA[day3]]></methodname><![CDATA[=]]><methodname><![CDATA[sample]]></methodname><![CDATA[(10,4)))]]>
<methodname><![CDATA[id]]></methodname><![CDATA[ ]]><methodname><![CDATA[day3]]></methodname>
<![CDATA[1  ]]><methodname><![CDATA[B]]></methodname><![CDATA[    8]]>
<![CDATA[2  ]]><methodname><![CDATA[D]]></methodname><![CDATA[    3]]>
<![CDATA[3  ]]><methodname><![CDATA[E]]></methodname><![CDATA[    4]]>
<![CDATA[4  ]]><token><![CDATA[F]]></token><![CDATA[   10]]>
<![CDATA[> (]]><methodname><![CDATA[d4]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[data.frame]]></methodname><![CDATA[(]]><methodname><![CDATA[id]]></methodname><![CDATA[=]]><symbol><![CDATA[LETTERS]]></symbol><methodname><![CDATA[[c]]></methodname><![CDATA[(1:5)]]><methodname><![CDATA[]]]></methodname><![CDATA[,]]><methodname><![CDATA[day4]]></methodname><![CDATA[=]]><methodname><![CDATA[sample]]></methodname><![CDATA[(10,5)))]]>
<methodname><![CDATA[id]]></methodname><![CDATA[ ]]><methodname><![CDATA[day4]]></methodname>
<![CDATA[1  ]]><methodname><![CDATA[A]]></methodname><![CDATA[    2]]>
<![CDATA[2  ]]><methodname><![CDATA[B]]></methodname><![CDATA[    7]]>
<![CDATA[3  ]]><methodname><![CDATA[C]]></methodname><![CDATA[    8]]>
<![CDATA[4  ]]><methodname><![CDATA[D]]></methodname><![CDATA[    9]]>
<![CDATA[5  ]]><methodname><![CDATA[E]]></methodname><![CDATA[    1]]>
</programlisting><itemizedlist><listitem><para>now we use Reduce() in combination with merge() </para></listitem></itemizedlist><programlisting format="linespecific" language="highlight" linenumbering="numbered" startinglinenumber="1"><![CDATA[> ]]><methodname><![CDATA[Reduce]]></methodname><![CDATA[(]]><methodname><![CDATA[merge]]></methodname><![CDATA[,]]><methodname><![CDATA[list]]></methodname><![CDATA[(]]><methodname><![CDATA[d1]]></methodname><![CDATA[,]]><methodname><![CDATA[d2]]></methodname><![CDATA[,]]><methodname><![CDATA[d3]]></methodname><![CDATA[,]]><methodname><![CDATA[d4]]></methodname><![CDATA[))]]>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><methodname><![CDATA[id]]></methodname><![CDATA[   ]]><methodname><![CDATA[day1]]></methodname><![CDATA[ ]]><methodname><![CDATA[day2]]></methodname><![CDATA[ ]]><methodname><![CDATA[day3]]></methodname><![CDATA[ ]]><methodname><![CDATA[day4]]></methodname>
</programlisting><itemizedlist><listitem><para>and what we get is an empty data frame </para></listitem><listitem><para>well this isn't exactly what we wanted, so why? </para></listitem><listitem><para>it is because the default behavior of merge() is set all=F, so we get only complete lines which is in this case - none </para></listitem><listitem><para>so we have to define a wrapper function which only change this argument to all=T </para></listitem><listitem><para>set all to TRUE </para></listitem></itemizedlist><programlisting format="linespecific" language="highlight" linenumbering="numbered" startinglinenumber="1"><![CDATA[> ]]><methodname><![CDATA[Reduce]]></methodname><![CDATA[(]]><methodname><![CDATA[function]]></methodname><![CDATA[(]]><methodname><![CDATA[x]]></methodname><![CDATA[,]]><methodname><![CDATA[y]]></methodname><![CDATA[) { ]]><methodname><![CDATA[merge]]></methodname><![CDATA[(]]><methodname><![CDATA[x]]></methodname><![CDATA[,]]><methodname><![CDATA[y]]></methodname><![CDATA[, ]]><methodname><![CDATA[all]]></methodname><![CDATA[=]]><token><![CDATA[T]]></token><![CDATA[) },]]>
<![CDATA[+        ]]><methodname><![CDATA[list]]></methodname><![CDATA[(]]><methodname><![CDATA[d1]]></methodname><![CDATA[,]]><methodname><![CDATA[d2]]></methodname><![CDATA[,]]><methodname><![CDATA[d3]]></methodname><![CDATA[,]]><methodname><![CDATA[d4]]></methodname><![CDATA[))]]>
<methodname><![CDATA[id]]></methodname><![CDATA[ ]]><methodname><![CDATA[day1]]></methodname><![CDATA[ ]]><methodname><![CDATA[day2]]></methodname><![CDATA[ ]]><methodname><![CDATA[day3]]></methodname><![CDATA[ ]]><methodname><![CDATA[day4]]></methodname>
<![CDATA[1  ]]><methodname><![CDATA[A]]></methodname><![CDATA[    3    8   ]]><symbol><![CDATA[NA]]></symbol><![CDATA[    2]]>
<![CDATA[2  ]]><methodname><![CDATA[B]]></methodname><![CDATA[    1   ]]><symbol><![CDATA[NA]]></symbol><![CDATA[    8    7]]>
<![CDATA[3  ]]><methodname><![CDATA[C]]></methodname><![CDATA[    7    2   ]]><symbol><![CDATA[NA]]></symbol><![CDATA[    8]]>
<![CDATA[4  ]]><methodname><![CDATA[E]]></methodname><![CDATA[   ]]><symbol><![CDATA[NA]]></symbol><![CDATA[    5    4    1]]>
<![CDATA[5  ]]><token><![CDATA[F]]></token><![CDATA[   ]]><symbol><![CDATA[NA]]></symbol><![CDATA[    3   10   ]]><symbol><![CDATA[NA]]></symbol>
<![CDATA[6  ]]><methodname><![CDATA[D]]></methodname><![CDATA[   ]]><symbol><![CDATA[NA]]></symbol><![CDATA[   ]]><symbol><![CDATA[NA]]></symbol><![CDATA[    3    9]]>
</programlisting><itemizedlist><listitem><para>which is exactly what we want </para></listitem><listitem><para>a second example in combination with rbind() </para></listitem></itemizedlist><programlisting format="linespecific" language="highlight" linenumbering="numbered" startinglinenumber="1"><![CDATA[> ]]><methodname><![CDATA[d4]]></methodname><![CDATA[$]]><methodname><![CDATA[day]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[names]]></methodname><![CDATA[(]]><methodname><![CDATA[d4]]></methodname><![CDATA[)]]><methodname><![CDATA[[2]]></methodname><methodname><![CDATA[]]]></methodname>
<![CDATA[> ]]><methodname><![CDATA[names]]></methodname><![CDATA[(]]><methodname><![CDATA[d4]]></methodname><![CDATA[)]]><methodname><![CDATA[[2]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ <- ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[score"]]></phrase>
<![CDATA[> ]]><methodname><![CDATA[Reduce]]></methodname><![CDATA[(]]><methodname><![CDATA[function]]></methodname><![CDATA[(]]><methodname><![CDATA[x]]></methodname><![CDATA[,]]><methodname><![CDATA[y]]></methodname><![CDATA[) { ]]><methodname><![CDATA[y]]></methodname><![CDATA[$]]><methodname><![CDATA[day]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[names]]></methodname><![CDATA[(]]><methodname><![CDATA[y]]></methodname><![CDATA[)]]><methodname><![CDATA[[2]]></methodname><methodname><![CDATA[]]]></methodname>
<![CDATA[+                        ]]><methodname><![CDATA[names]]></methodname><![CDATA[(]]><methodname><![CDATA[y]]></methodname><![CDATA[)]]><methodname><![CDATA[[2]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ <- ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[score"]]></phrase>
<![CDATA[+                        ]]><methodname><![CDATA[rbind]]></methodname><![CDATA[(]]><methodname><![CDATA[x]]></methodname><![CDATA[,]]><methodname><![CDATA[y]]></methodname><![CDATA[) } ,]]>
<![CDATA[+        ]]><methodname><![CDATA[list]]></methodname><![CDATA[(]]><methodname><![CDATA[d1]]></methodname><![CDATA[,]]><methodname><![CDATA[d2]]></methodname><![CDATA[,]]><methodname><![CDATA[d3]]></methodname><![CDATA[), ]]><methodname><![CDATA[init]]></methodname><![CDATA[ = ]]><methodname><![CDATA[d4]]></methodname><![CDATA[)]]>
<methodname><![CDATA[id]]></methodname><![CDATA[ ]]><methodname><![CDATA[score]]></methodname><![CDATA[  ]]><methodname><![CDATA[day]]></methodname>
<![CDATA[1   ]]><methodname><![CDATA[A]]></methodname><![CDATA[     2 ]]><methodname><![CDATA[day4]]></methodname>
<![CDATA[2   ]]><methodname><![CDATA[B]]></methodname><![CDATA[     7 ]]><methodname><![CDATA[day4]]></methodname>
<![CDATA[3   ]]><methodname><![CDATA[C]]></methodname><![CDATA[     8 ]]><methodname><![CDATA[day4]]></methodname>
<![CDATA[4   ]]><methodname><![CDATA[D]]></methodname><![CDATA[     9 ]]><methodname><![CDATA[day4]]></methodname>
</programlisting><itemizedlist><listitem><para>which is exactly what we want </para></listitem></itemizedlist></section></section><section><title>Reduce() Exercise</title><itemizedlist><listitem><para>the list ml contains three vectors </para></listitem><listitem><para>use lapply() to get the class of each of them </para></listitem><listitem><para>then use Reduce() and combination with c() to coerce them into one vector. Of which class is the resulting vector? </para></listitem></itemizedlist><programlisting format="linespecific" language="highlight" linenumbering="numbered" startinglinenumber="1"><![CDATA[> ]]><methodname><![CDATA[ml]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[list]]></methodname><![CDATA[(]]><methodname><![CDATA[vl]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[c]]></methodname><![CDATA[(]]><symbol><![CDATA[TRUE]]></symbol><![CDATA[,]]><symbol><![CDATA[FALSE]]></symbol><![CDATA[),]]>
<![CDATA[+            ]]><methodname><![CDATA[vn]]></methodname><![CDATA[ <- 1:10,]]>
<![CDATA[+            ]]><methodname><![CDATA[vc]]></methodname><![CDATA[ <- ]]><symbol><![CDATA[letters]]></symbol><![CDATA[)]]>
</programlisting><section><title>solution</title><itemizedlist><listitem><para>use lapply() to get the class of each of them </para></listitem></itemizedlist><programlisting format="linespecific" language="highlight" linenumbering="numbered" startinglinenumber="1"><![CDATA[> ]]><methodname><![CDATA[lapply]]></methodname><![CDATA[(]]><methodname><![CDATA[ml]]></methodname><![CDATA[,]]><methodname><![CDATA[class]]></methodname><![CDATA[)]]>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[logical"]]></phrase>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[integer"]]></phrase>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[character"]]></phrase>
</programlisting><itemizedlist><listitem><para>then use Reduce() and combination with c() to coerce them into one vector. Of which class is the resulting vector? </para></listitem></itemizedlist><programlisting format="linespecific" language="highlight" linenumbering="numbered" startinglinenumber="1"><![CDATA[> ]]><methodname><![CDATA[rv]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[Reduce]]></methodname><![CDATA[(]]><methodname><![CDATA[c]]></methodname><![CDATA[,]]><methodname><![CDATA[ml]]></methodname><![CDATA[)]]>
<![CDATA[> ]]><methodname><![CDATA[rv]]></methodname>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[1"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[0"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[1"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[2"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[3"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[4"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[5"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[6"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[7"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[8"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[9"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[10"]]></phrase><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[a"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[b"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[c"]]></phrase><![CDATA[ ]]>
<methodname><![CDATA[[16]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[d"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[e"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[f"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[g"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[h"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[i"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[j"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[k"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[l"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[m"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[n"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[o"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[p"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[q"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[r"]]></phrase><![CDATA[ ]]>
<methodname><![CDATA[[31]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[s"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[t"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[u"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[v"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[w"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[x"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[y"]]></phrase><![CDATA[  ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[z"]]></phrase><![CDATA[ ]]>
<![CDATA[> ]]><methodname><![CDATA[class]]></methodname><![CDATA[(]]><methodname><![CDATA[rv]]></methodname><![CDATA[)]]>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[character"]]></phrase>
</programlisting></section></section><section><title>Combine all data frames</title><itemizedlist><listitem><para>We used lapply() and our function read.file() to read all files in files </para></listitem><listitem><para>and we got back a list df.list containing 192 data frames </para></listitem></itemizedlist><programlisting format="linespecific" language="highlight" linenumbering="numbered" startinglinenumber="1"><![CDATA[> ]]><methodname><![CDATA[df.list]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[lapply]]></methodname><![CDATA[(]]><methodname><![CDATA[files]]></methodname><![CDATA[,]]><methodname><![CDATA[read.file]]></methodname><![CDATA[,]]><methodname><![CDATA[skip]]></methodname><![CDATA[=0)]]>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[read data/posttest/post_001.txt"]]></phrase>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[read data/posttest/post_002.txt"]]></phrase>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[read data/posttest/post_003.txt"]]></phrase>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[read data/posttest/post_004.txt"]]></phrase>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[read data/posttest/post_005.txt"]]></phrase>
<![CDATA[> ]]><methodname><![CDATA[table]]></methodname><![CDATA[(]]><methodname><![CDATA[sapply]]></methodname><![CDATA[(]]><methodname><![CDATA[df.list]]></methodname><![CDATA[,]]><methodname><![CDATA[class]]></methodname><![CDATA[))]]>
<![CDATA[192          3   ]]>
</programlisting></section><section><title>Combine all data frames - exercise</title><itemizedlist><listitem><para>now use what we learned about  Reduce{} and combining data frames using rbind()  to combine these 192 data frames.  </para></listitem></itemizedlist><section><title>solution</title><programlisting format="linespecific" language="highlight" linenumbering="numbered" startinglinenumber="1"><![CDATA[> ]]><methodname><![CDATA[data]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[Reduce]]></methodname><![CDATA[(]]><methodname><![CDATA[rbind]]></methodname><![CDATA[,]]><methodname><![CDATA[df.list]]></methodname><![CDATA[)]]>
<![CDATA[> ]]><methodname><![CDATA[nrow]]></methodname><![CDATA[(]]><methodname><![CDATA[data]]></methodname><![CDATA[)]]>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ 12704]]>
<![CDATA[> ]]><methodname><![CDATA[table]]></methodname><![CDATA[(]]><methodname><![CDATA[data]]></methodname><![CDATA[$]]><methodname><![CDATA[Subject]]></methodname><![CDATA[)]]>
<![CDATA[001]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 002]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 003]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 004]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 005]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 006]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 007]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 008]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ ]]>
<![CDATA[93        91        96        93        95        95        93        96 ]]>
<![CDATA[009]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 010]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 011]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 012]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 013]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 014]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 015]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 016]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ ]]>
<![CDATA[92        94        95        96        96        95        96        94 ]]>
<![CDATA[017]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 018]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 019]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 020]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 001]]><methodname><![CDATA[_test1]]></methodname><![CDATA[ 002]]><methodname><![CDATA[_test1]]></methodname><![CDATA[ 003]]><methodname><![CDATA[_test1]]></methodname><![CDATA[ 004]]><methodname><![CDATA[_test1]]></methodname><![CDATA[ ]]>
<![CDATA[95        94        96        95        95        95        96        94 ]]>
<![CDATA[005]]><methodname><![CDATA[_test1]]></methodname><![CDATA[ 006]]><methodname><![CDATA[_test1]]></methodname><![CDATA[ 007]]><methodname><![CDATA[_test1]]></methodname><![CDATA[ 008]]><methodname><![CDATA[_test1]]></methodname><![CDATA[ 009]]><methodname><![CDATA[_test1]]></methodname><![CDATA[ 010]]><methodname><![CDATA[_test1]]></methodname><![CDATA[ 011]]><methodname><![CDATA[_test1]]></methodname><![CDATA[ 012]]><methodname><![CDATA[_test1]]></methodname><![CDATA[ ]]>
<![CDATA[96        95        94        90        96        95        91        96 ]]>
<![CDATA[013]]><methodname><![CDATA[_test1]]></methodname><![CDATA[ 014]]><methodname><![CDATA[_test1]]></methodname><![CDATA[ 015]]><methodname><![CDATA[_test1]]></methodname><![CDATA[ 016]]><methodname><![CDATA[_test1]]></methodname><![CDATA[ 017]]><methodname><![CDATA[_test1]]></methodname><![CDATA[ 018]]><methodname><![CDATA[_test1]]></methodname><![CDATA[ 019]]><methodname><![CDATA[_test1]]></methodname><![CDATA[ 020]]><methodname><![CDATA[_test1]]></methodname><![CDATA[ ]]>
<![CDATA[95        96        95        91        96        96        96        96 ]]>
<![CDATA[001]]><methodname><![CDATA[_1]]></methodname><![CDATA[     002]]><methodname><![CDATA[_1]]></methodname><![CDATA[     003]]><methodname><![CDATA[_1]]></methodname><![CDATA[     004]]><methodname><![CDATA[_1]]></methodname><![CDATA[     005]]><methodname><![CDATA[_1]]></methodname><![CDATA[     006]]><methodname><![CDATA[_1]]></methodname><![CDATA[    ]]><methodname><![CDATA[CHGU_1]]></methodname><![CDATA[    008]]><methodname><![CDATA[_1a]]></methodname><![CDATA[ ]]>
<![CDATA[60        59        60        54        60        59        60        60 ]]>
<![CDATA[009]]><methodname><![CDATA[_1]]></methodname><![CDATA[     010]]><methodname><![CDATA[_1]]></methodname><![CDATA[     ]]><methodname><![CDATA[RMK_1]]></methodname><![CDATA[     013]]><methodname><![CDATA[_1]]></methodname><![CDATA[     014]]><methodname><![CDATA[_1]]></methodname><![CDATA[     015]]><methodname><![CDATA[_1]]></methodname><![CDATA[     016]]><methodname><![CDATA[_1]]></methodname><![CDATA[    ]]><methodname><![CDATA[IJ2K_1]]></methodname><![CDATA[ ]]>
<![CDATA[60        60        59        59        60        58        59        58 ]]>
<![CDATA[018]]><methodname><![CDATA[_1]]></methodname><![CDATA[     019]]><methodname><![CDATA[_1]]></methodname><![CDATA[     020]]><methodname><![CDATA[_1]]></methodname><![CDATA[     001]]><methodname><![CDATA[_2]]></methodname><![CDATA[     002]]><methodname><![CDATA[_2]]></methodname><![CDATA[     003]]><methodname><![CDATA[_2]]></methodname><![CDATA[     004]]><methodname><![CDATA[_2]]></methodname><![CDATA[     005]]><methodname><![CDATA[_2]]></methodname><![CDATA[ ]]>
<![CDATA[60        59        60        59        59        57        58        57 ]]>
<![CDATA[006]]><methodname><![CDATA[_2]]></methodname><![CDATA[     007]]><methodname><![CDATA[_2]]></methodname><![CDATA[     008]]><methodname><![CDATA[_2]]></methodname><![CDATA[     009]]><methodname><![CDATA[_2]]></methodname><![CDATA[     010]]><methodname><![CDATA[_2]]></methodname><![CDATA[     011]]><methodname><![CDATA[_2]]></methodname><![CDATA[     012]]><methodname><![CDATA[_2]]></methodname><![CDATA[     013]]><methodname><![CDATA[_2]]></methodname><![CDATA[ ]]>
<![CDATA[58        58        54        58        58        59        59        56 ]]>
<![CDATA[014]]><methodname><![CDATA[_2]]></methodname><![CDATA[     015]]><methodname><![CDATA[_2]]></methodname><![CDATA[     016]]><methodname><![CDATA[_2]]></methodname><![CDATA[     017]]><methodname><![CDATA[_2]]></methodname><![CDATA[     018]]><methodname><![CDATA[_2]]></methodname><![CDATA[     019]]><methodname><![CDATA[_2]]></methodname><![CDATA[     020]]><methodname><![CDATA[_2]]></methodname><![CDATA[     001]]><methodname><![CDATA[_3]]></methodname><![CDATA[ ]]>
</programlisting></section></section><section><title>The Function no 2</title><itemizedlist><listitem><para>so it is recommended to build again a function out of this </para></listitem></itemizedlist><programlisting format="linespecific" language="highlight" linenumbering="numbered" startinglinenumber="1"><![CDATA[> ]]><methodname><![CDATA[read.files]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[function]]></methodname><![CDATA[(]]><methodname><![CDATA[filesdir]]></methodname><![CDATA[,]]><methodname><![CDATA[skip]]></methodname><![CDATA[=3,]]><methodname><![CDATA[recursive]]></methodname><![CDATA[=]]><token><![CDATA[F]]></token><![CDATA[,]]><methodname><![CDATA[pattern]]></methodname><![CDATA[=]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[."]]></phrase><![CDATA[){]]>
<![CDATA[+     ]]><methodname><![CDATA[files]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[dir]]></methodname><![CDATA[(]]><methodname><![CDATA[filesdir]]></methodname><![CDATA[,]]>
<![CDATA[+                  ]]><methodname><![CDATA[full.names]]></methodname><![CDATA[ = ]]><token><![CDATA[T]]></token><![CDATA[,]]>
<![CDATA[+                  ]]><methodname><![CDATA[recursive]]></methodname><![CDATA[ = ]]><methodname><![CDATA[recursive]]></methodname><![CDATA[,]]>
<![CDATA[+                  ]]><methodname><![CDATA[pattern]]></methodname><![CDATA[ = ]]><methodname><![CDATA[pattern]]></methodname><![CDATA[)]]>
<![CDATA[+     ]]><methodname><![CDATA[Reduce]]></methodname><![CDATA[(]]><methodname><![CDATA[rbind]]></methodname><![CDATA[,]]><methodname><![CDATA[lapply]]></methodname><![CDATA[(]]><methodname><![CDATA[files]]></methodname><![CDATA[,]]><methodname><![CDATA[read.file]]></methodname><![CDATA[,]]><methodname><![CDATA[skip]]></methodname><![CDATA[=]]><methodname><![CDATA[skip]]></methodname><![CDATA[))}]]>
<![CDATA[> ]]><methodname><![CDATA[data]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[read.files]]></methodname><![CDATA[(]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[data"]]></phrase><![CDATA[,]]><methodname><![CDATA[recursive]]></methodname><![CDATA[ = ]]><token><![CDATA[T]]></token><![CDATA[,]]><methodname><![CDATA[skip]]></methodname><![CDATA[=0,]]><methodname><![CDATA[pattern]]></methodname><![CDATA[ = ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[\\.txt$"]]></phrase><![CDATA[)]]>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[read data/posttest/post_001.txt"]]></phrase>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[read data/posttest/post_002.txt"]]></phrase>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[read data/posttest/post_003.txt"]]></phrase>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[read data/posttest/post_004.txt"]]></phrase>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[read data/posttest/post_005.txt"]]></phrase>
</programlisting><itemizedlist><listitem><para>by changing the pattern (passed through to dir() we can limit the read in files to specific time or person\tiny </para></listitem></itemizedlist><programlisting format="linespecific" language="highlight" linenumbering="numbered" startinglinenumber="1"><![CDATA[> ]]><methodname><![CDATA[sub1]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[read.files]]></methodname><![CDATA[(]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[../session2/data"]]></phrase><![CDATA[,]]>
<![CDATA[+                    ]]><methodname><![CDATA[skip]]></methodname><![CDATA[ = 0, ]]><methodname><![CDATA[recursive]]></methodname><![CDATA[ = ]]><token><![CDATA[T]]></token><![CDATA[,]]><methodname><![CDATA[pattern]]></methodname><![CDATA[=]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[\\002\\.txt$"]]></phrase><![CDATA[)]]>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[read ../session2/data/posttest/post_002.txt"]]></phrase>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[read ../session2/data/pretest/pre_002.txt"]]></phrase>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[read ../session2/data/training_1/train_002.txt"]]></phrase>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[read ../session2/data/training_2/train_002.txt"]]></phrase>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[read ../session2/data/training_3/train_002.txt"]]></phrase>
<![CDATA[> ]]><methodname><![CDATA[test]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[read.files]]></methodname><![CDATA[(]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[../session2/data"]]></phrase><![CDATA[,]]>
<![CDATA[+                    ]]><methodname><![CDATA[skip]]></methodname><![CDATA[ = 0, ]]><methodname><![CDATA[recursive]]></methodname><![CDATA[ = ]]><token><![CDATA[T]]></token><![CDATA[,]]><methodname><![CDATA[pattern]]></methodname><![CDATA[=]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[p[ro].+\\.txt$"]]></phrase><![CDATA[)]]>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[read ../session2/data/posttest/post_001.txt"]]></phrase>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[read ../session2/data/posttest/post_002.txt"]]></phrase>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[read ../session2/data/pretest/pre_001.txt"]]></phrase>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[read ../session2/data/pretest/pre_002.txt"]]></phrase>
</programlisting></section><section><title>The Subject column</title><itemizedlist><listitem><para>table the Subject column again. What is the problem? </para></listitem></itemizedlist><programlisting format="linespecific" language="highlight" linenumbering="numbered" startinglinenumber="1"><![CDATA[> ]]><methodname><![CDATA[table]]></methodname><![CDATA[(]]><methodname><![CDATA[data]]></methodname><![CDATA[$]]><methodname><![CDATA[Subject]]></methodname><![CDATA[)]]>
<![CDATA[001]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 002]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 003]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 004]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 005]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 006]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 007]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 008]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ ]]>
<![CDATA[93        91        96        93        95        95        93        96 ]]>
<![CDATA[009]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 010]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 011]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 012]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 013]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 014]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 015]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 016]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ ]]>
<![CDATA[92        94        95        96        96        95        96        94 ]]>
<![CDATA[017]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 018]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 019]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 020]]><methodname><![CDATA[_test2]]></methodname><![CDATA[ 001]]><methodname><![CDATA[_test1]]></methodname><![CDATA[ 002]]><methodname><![CDATA[_test1]]></methodname><![CDATA[ 003]]><methodname><![CDATA[_test1]]></methodname><![CDATA[ 004]]><methodname><![CDATA[_test1]]></methodname><![CDATA[ ]]>
<![CDATA[95        94        96        95        95        95        96        94 ]]>
</programlisting><itemizedlist><listitem><para>subject and time coded in one variable </para></listitem><listitem><para>we create two new variables using the str_split() function (stringr package) </para></listitem><listitem><para>because str_split() has a list containing a vector as result we have to use it in combination with sapply() </para></listitem><listitem><para>then correct some of the person ids </para></listitem></itemizedlist><programlisting format="linespecific" language="highlight" linenumbering="numbered" startinglinenumber="1"><![CDATA[> ]]><methodname><![CDATA[data]]></methodname><![CDATA[$]]><methodname><![CDATA[persid]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[sapply]]></methodname><![CDATA[(]]><methodname><![CDATA[data]]></methodname><![CDATA[$]]><methodname><![CDATA[Subject]]></methodname><![CDATA[,]]><methodname><![CDATA[function]]></methodname><![CDATA[(]]><methodname><![CDATA[x]]></methodname><![CDATA[)]]>
<![CDATA[+     ]]><methodname><![CDATA[str_split]]></methodname><![CDATA[(]]><methodname><![CDATA[x]]></methodname><![CDATA[,]]><methodname><![CDATA[pattern]]></methodname><![CDATA[ = ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[_"]]></phrase><![CDATA[)]]><methodname><![CDATA[[]]></methodname><methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><methodname><![CDATA[]]]></methodname><methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[)]]>
<![CDATA[> ]]><methodname><![CDATA[data]]></methodname><![CDATA[$]]><methodname><![CDATA[testid]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[sapply]]></methodname><![CDATA[(]]><methodname><![CDATA[data]]></methodname><![CDATA[$]]><methodname><![CDATA[Subject]]></methodname><![CDATA[,]]><methodname><![CDATA[function]]></methodname><![CDATA[(]]><methodname><![CDATA[x]]></methodname><![CDATA[)]]>
<![CDATA[+     ]]><methodname><![CDATA[str_split]]></methodname><![CDATA[(]]><methodname><![CDATA[x]]></methodname><![CDATA[,]]><methodname><![CDATA[pattern]]></methodname><![CDATA[ = ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[_"]]></phrase><![CDATA[)]]><methodname><![CDATA[[]]></methodname><methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><methodname><![CDATA[]]]></methodname><methodname><![CDATA[[2]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[)]]>
</programlisting><itemizedlist><listitem><para>a alternative is using again regular expressions using the str_replace() function (again stringr package) </para></listitem><listitem><para>str_replace() takes three arguments: the string, the pattern to be replaced and the replacement </para></listitem></itemizedlist><programlisting format="linespecific" language="highlight" linenumbering="numbered" startinglinenumber="1"><![CDATA[> ]]><methodname><![CDATA[data]]></methodname><![CDATA[$]]><methodname><![CDATA[testid]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[str_replace]]></methodname><![CDATA[(]]><methodname><![CDATA[data]]></methodname><![CDATA[$]]><methodname><![CDATA[Subject]]></methodname><![CDATA[,]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[^.+_"]]></phrase><![CDATA[,]]><phrase><![CDATA["]]></phrase><phrase><![CDATA["]]></phrase><![CDATA[)]]>
<![CDATA[> ]]><methodname><![CDATA[data]]></methodname><![CDATA[$]]><methodname><![CDATA[persid]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[str_replace]]></methodname><![CDATA[(]]><methodname><![CDATA[data]]></methodname><![CDATA[$]]><methodname><![CDATA[Subject]]></methodname><![CDATA[,]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[_.+$"]]></phrase><![CDATA[,]]><phrase><![CDATA["]]></phrase><phrase><![CDATA["]]></phrase><![CDATA[)]]>
<![CDATA[> ]]><methodname><![CDATA[data]]></methodname><![CDATA[$]]><methodname><![CDATA[Subject]]></methodname><![CDATA[ <- ]]><symbol><![CDATA[NULL]]></symbol>
</programlisting><itemizedlist><listitem><para>now table the personid column </para></listitem><listitem><para>what is left to do? </para></listitem></itemizedlist><programlisting format="linespecific" language="highlight" linenumbering="numbered" startinglinenumber="1"><![CDATA[> ]]><methodname><![CDATA[table]]></methodname><![CDATA[(]]><methodname><![CDATA[data]]></methodname><![CDATA[$]]><methodname><![CDATA[persid]]></methodname><![CDATA[)]]>
<![CDATA[001  002  003  004  005  006  007  008  009  010  011  012  013  014  015  016 ]]>
<![CDATA[665  662  666  587  608  588  600  654  536  543  600  523  589  669  662  663 ]]>
<![CDATA[017  018  019  020 ]]><methodname><![CDATA[CHGU]]></methodname><![CDATA[ ]]><methodname><![CDATA[GA3K]]></methodname><![CDATA[ ]]><methodname><![CDATA[IJ2K]]></methodname><![CDATA[ ]]><methodname><![CDATA[Kj6K]]></methodname><![CDATA[  ]]><methodname><![CDATA[RMK]]></methodname><![CDATA[ ]]>
<![CDATA[604  668  667  656   60   58   58   59   59 ]]>
<![CDATA[> ]]><methodname><![CDATA[data]]></methodname><![CDATA[$]]><methodname><![CDATA[persid]]></methodname><methodname><![CDATA[[data]]></methodname><![CDATA[$]]><methodname><![CDATA[persid]]></methodname><![CDATA[==]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[CHGU"]]></phrase><methodname><![CDATA[]]]></methodname><![CDATA[ <- ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[007"]]></phrase>
</programlisting></section><section><title>The Subject column Exercises</title><itemizedlist><listitem><para>there are some more wrong person ids: RMK - 011, IJ2K - 017, GA3K - 004, Kj6K - 006. Correct them! </para></listitem></itemizedlist><section><title>solution</title><programlisting format="linespecific" language="highlight" linenumbering="numbered" startinglinenumber="1"><![CDATA[> ]]><methodname><![CDATA[data]]></methodname><![CDATA[$]]><methodname><![CDATA[persid]]></methodname><methodname><![CDATA[[data]]></methodname><![CDATA[$]]><methodname><![CDATA[persid]]></methodname><![CDATA[==]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[RMK"]]></phrase><methodname><![CDATA[]]]></methodname><![CDATA[ <- ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[011"]]></phrase>
<![CDATA[> ]]><methodname><![CDATA[data]]></methodname><![CDATA[$]]><methodname><![CDATA[persid]]></methodname><methodname><![CDATA[[data]]></methodname><![CDATA[$]]><methodname><![CDATA[persid]]></methodname><![CDATA[==]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[IJ2K"]]></phrase><methodname><![CDATA[]]]></methodname><![CDATA[ <- ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[017"]]></phrase>
<![CDATA[> ]]><methodname><![CDATA[data]]></methodname><![CDATA[$]]><methodname><![CDATA[persid]]></methodname><methodname><![CDATA[[data]]></methodname><![CDATA[$]]><methodname><![CDATA[persid]]></methodname><![CDATA[==]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[GA3K"]]></phrase><methodname><![CDATA[]]]></methodname><![CDATA[ <- ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[004"]]></phrase>
<![CDATA[> ]]><methodname><![CDATA[data]]></methodname><![CDATA[$]]><methodname><![CDATA[persid]]></methodname><methodname><![CDATA[[data]]></methodname><![CDATA[$]]><methodname><![CDATA[persid]]></methodname><![CDATA[==]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[Kj6K"]]></phrase><methodname><![CDATA[]]]></methodname><![CDATA[ <- ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[006"]]></phrase>
</programlisting></section></section><section><title>Merging</title><para>* now read in the file subjectsdemographics.txt using the appropriate command * join the demographics with our data data frame (there is a little problem left - compare the persid and Subject columns) </para><programlisting format="linespecific" language="highlight" linenumbering="numbered" startinglinenumber="1"><![CDATA[> ]]><methodname><![CDATA[persdat]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[read.table]]></methodname><![CDATA[(]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[data/subjectdemographics.txt"]]></phrase><![CDATA[,]]>
<![CDATA[+                       ]]><methodname><![CDATA[sep]]></methodname><![CDATA[=]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[\t"]]></phrase><![CDATA[,]]>
<![CDATA[+                       ]]><methodname><![CDATA[header]]></methodname><![CDATA[=]]><token><![CDATA[T]]></token><![CDATA[)]]>
<![CDATA[> ]]><methodname><![CDATA[persdat]]></methodname><![CDATA[$]]><methodname><![CDATA[Subject]]></methodname>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20]]>
<![CDATA[> ]]><methodname><![CDATA[unique]]></methodname><![CDATA[(]]><methodname><![CDATA[data]]></methodname><![CDATA[$]]><methodname><![CDATA[persid]]></methodname><![CDATA[)]]>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[001"]]></phrase><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[002"]]></phrase><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[003"]]></phrase><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[004"]]></phrase><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[005"]]></phrase><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[006"]]></phrase><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[007"]]></phrase><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[008"]]></phrase><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[009"]]></phrase><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[010"]]></phrase><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[011"]]></phrase><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[012"]]></phrase>
<methodname><![CDATA[[13]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[013"]]></phrase><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[014"]]></phrase><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[015"]]></phrase><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[016"]]></phrase><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[017"]]></phrase><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[018"]]></phrase><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[019"]]></phrase><![CDATA[ ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[020"]]></phrase>
<![CDATA[> ]]><methodname><![CDATA[data]]></methodname><![CDATA[$]]><methodname><![CDATA[persid]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[as.numeric]]></methodname><![CDATA[(]]><methodname><![CDATA[data]]></methodname><![CDATA[$]]><methodname><![CDATA[persid]]></methodname><![CDATA[)]]>
<![CDATA[> ]]><methodname><![CDATA[unique]]></methodname><![CDATA[(]]><methodname><![CDATA[data]]></methodname><![CDATA[$]]><methodname><![CDATA[persid]]></methodname><![CDATA[)]]>
<methodname><![CDATA[[1]]></methodname><methodname><![CDATA[]]]></methodname><![CDATA[  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20]]>
<![CDATA[> ]]><methodname><![CDATA[data]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[merge]]></methodname><![CDATA[(]]><methodname><![CDATA[persdat]]></methodname><![CDATA[,]]><methodname><![CDATA[data]]></methodname><![CDATA[,]]><methodname><![CDATA[by.x]]></methodname><![CDATA[ = ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[Subject"]]></phrase><![CDATA[,]]><methodname><![CDATA[by.y]]></methodname><![CDATA[ = ]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[persid"]]></phrase><![CDATA[,]]><methodname><![CDATA[all]]></methodname><![CDATA[=]]><token><![CDATA[T]]></token><![CDATA[)]]>
<![CDATA[> ]]><methodname><![CDATA[head]]></methodname><![CDATA[(]]><methodname><![CDATA[data]]></methodname><![CDATA[)]]>
<![CDATA[> ]]><methodname><![CDATA[summary]]></methodname><![CDATA[(]]><methodname><![CDATA[data]]></methodname><![CDATA[)]]>
<methodname><![CDATA[Subject]]></methodname><![CDATA[      ]]><methodname><![CDATA[Sex]]></methodname><![CDATA[       ]]><methodname><![CDATA[Age_PRETEST]]></methodname><![CDATA[        ]]><methodname><![CDATA[Trial]]></methodname><![CDATA[          ]]><methodname><![CDATA[Event.Type]]></methodname><![CDATA[   ]]>
<![CDATA[1]]><methodname><![CDATA[st]]></methodname><![CDATA[ ]]><methodname><![CDATA[Qu.]]></methodname><![CDATA[: 5.00   ]]><methodname><![CDATA[m]]></methodname><![CDATA[:5046   1]]><methodname><![CDATA[st]]></methodname><![CDATA[ ]]><methodname><![CDATA[Qu.]]></methodname><![CDATA[:3.110   1]]><methodname><![CDATA[st]]></methodname><![CDATA[ ]]><methodname><![CDATA[Qu.]]></methodname><![CDATA[:112.0   ]]><methodname><![CDATA[Response]]></methodname><![CDATA[:12704  ]]>
<methodname><![CDATA[Median]]></methodname><![CDATA[ :11.00            ]]><methodname><![CDATA[Median]]></methodname><![CDATA[ :4.400   ]]><methodname><![CDATA[Median]]></methodname><![CDATA[ :222.0   ]]><methodname><![CDATA[Sound]]></methodname><![CDATA[   :    0  ]]>
<methodname><![CDATA[Mean]]></methodname><![CDATA[   :10.53            ]]><methodname><![CDATA[Mean]]></methodname><![CDATA[   :4.154   ]]><methodname><![CDATA[Mean]]></methodname><![CDATA[   :223.1   ]]><methodname><![CDATA[Pause]]></methodname><![CDATA[   :    0  ]]>
<![CDATA[3]]><methodname><![CDATA[rd]]></methodname><![CDATA[ ]]><methodname><![CDATA[Qu.]]></methodname><![CDATA[:16.00            3]]><methodname><![CDATA[rd]]></methodname><![CDATA[ ]]><methodname><![CDATA[Qu.]]></methodname><![CDATA[:4.600   3]]><methodname><![CDATA[rd]]></methodname><![CDATA[ ]]><methodname><![CDATA[Qu.]]></methodname><![CDATA[:332.0   ]]><methodname><![CDATA[Resume]]></methodname><![CDATA[  :    0  ]]>
</programlisting></section><section><title>Summary Graphics</title><para>Just run the code and try to understand it. We will cover the ggplot graphics soon. </para><programlisting format="linespecific" language="highlight" linenumbering="numbered" startinglinenumber="1"><![CDATA[> ]]><methodname><![CDATA[ggplot]]></methodname><![CDATA[(]]><methodname><![CDATA[data]]></methodname><![CDATA[,]]><methodname><![CDATA[aes]]></methodname><![CDATA[(]]><methodname><![CDATA[x]]></methodname><![CDATA[=]]><methodname><![CDATA[factor]]></methodname><![CDATA[(]]><methodname><![CDATA[Subject]]></methodname><![CDATA[),]]><methodname><![CDATA[fill]]></methodname><![CDATA[=]]><methodname><![CDATA[..count..]]></methodname><![CDATA[)) +]]>
<![CDATA[+     ]]><methodname><![CDATA[geom_bar]]></methodname><![CDATA[() +]]>
<![CDATA[+     ]]><methodname><![CDATA[facet_wrap]]></methodname><![CDATA[(~]]><methodname><![CDATA[testid]]></methodname><![CDATA[)]]>
</programlisting><para><ulink url="https://wiki.init.mpg.de/IT4Science/RstatisTik/RstatisTikPortal/RcourSe/FinalFunction/CombMoreDataFrames/IT4Science/RstatisTik/RstatisTikPortal/RcourSe/FinalFunction/CombMoreDataFrames?action=AttachFile&amp;do=get&amp;target=graph1.png"><inlinemediaobject><imageobject><imagedata fileref="https://wiki.init.mpg.de/IT4Science/RstatisTik/RstatisTikPortal/RcourSe/FinalFunction/CombMoreDataFrames?action=AttachFile&amp;do=get&amp;target=graph1.png" width="800"/></imageobject><textobject><phrase>attachment:graph1.png</phrase></textobject></inlinemediaobject></ulink> </para><itemizedlist><listitem><para>so there are problems in coding of the test id </para></listitem><listitem><para>we remove the letters at the end using str_replace() </para></listitem></itemizedlist><programlisting format="linespecific" language="highlight" linenumbering="numbered" startinglinenumber="1"><![CDATA[> ]]><methodname><![CDATA[data]]></methodname><![CDATA[$]]><methodname><![CDATA[testid]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[str_replace]]></methodname><![CDATA[(]]><methodname><![CDATA[data]]></methodname><![CDATA[$]]><methodname><![CDATA[testid]]></methodname><![CDATA[,]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[[a-z]$"]]></phrase><![CDATA[,]]><phrase><![CDATA["]]></phrase><phrase><![CDATA["]]></phrase><![CDATA[)]]>
<![CDATA[> ]]><methodname><![CDATA[data]]></methodname><![CDATA[$]]><methodname><![CDATA[testid]]></methodname><![CDATA[ <- ]]><methodname><![CDATA[factor]]></methodname><![CDATA[(]]><methodname><![CDATA[data]]></methodname><![CDATA[$]]><methodname><![CDATA[testid]]></methodname><![CDATA[,]]>
<![CDATA[+                       ]]><methodname><![CDATA[levels]]></methodname><![CDATA[=]]><methodname><![CDATA[c]]></methodname><![CDATA[(]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[test1"]]></phrase><![CDATA[,]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[1"]]></phrase><![CDATA[,]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[2"]]></phrase><![CDATA[,]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[3"]]></phrase><![CDATA[,]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[4"]]></phrase><![CDATA[,]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[5"]]></phrase><![CDATA[,]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[6"]]></phrase><![CDATA[,]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[7"]]></phrase><![CDATA[,]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[8"]]></phrase><![CDATA[,]]><phrase><![CDATA["]]></phrase><phrase><![CDATA[test2"]]></phrase><![CDATA[))]]>
<![CDATA[> ]]><methodname><![CDATA[table]]></methodname><![CDATA[(]]><methodname><![CDATA[data]]></methodname><![CDATA[$]]><methodname><![CDATA[Subject]]></methodname><![CDATA[,]]><methodname><![CDATA[data]]></methodname><![CDATA[$]]><methodname><![CDATA[testid]]></methodname><![CDATA[)]]>
<methodname><![CDATA[test1]]></methodname><![CDATA[  1  2  3  4  5  6  7  8 ]]><methodname><![CDATA[test2]]></methodname>
<![CDATA[1     95 60 59 60 59 59 60 60 60    93]]>
<![CDATA[2     95 59 59 58 60 60 60 60 60    91]]>
<![CDATA[3     96 60 57 60 60 60 60 59 58    96]]>
<![CDATA[4     94 54 58 60 60 55 53 60 58    93]]>
<![CDATA[5     96 60 57 60 60 60 60 60  0    95]]>
<![CDATA[6     95 59 58 59 58 59 55 54 55    95]]>
<![CDATA[7     94 60 58 60 58 59 60 59 59    93]]>
<![CDATA[8     90 60 54 55 60 60 60 59 60    96]]>
<![CDATA[9     96 60 58 59 57  0  0 58 56    92]]>
</programlisting><programlisting format="linespecific" language="highlight" linenumbering="numbered" startinglinenumber="1"><![CDATA[> ]]><methodname><![CDATA[ggplot]]></methodname><![CDATA[(]]><methodname><![CDATA[data]]></methodname><![CDATA[,]]><methodname><![CDATA[aes]]></methodname><![CDATA[(]]><methodname><![CDATA[x]]></methodname><![CDATA[=]]><methodname><![CDATA[factor]]></methodname><![CDATA[(]]><methodname><![CDATA[Subject]]></methodname><![CDATA[),]]><methodname><![CDATA[fill]]></methodname><![CDATA[=]]><methodname><![CDATA[..count..]]></methodname><![CDATA[)) +]]>
<![CDATA[+     ]]><methodname><![CDATA[geom_bar]]></methodname><![CDATA[() +]]>
<![CDATA[+     ]]><methodname><![CDATA[facet_wrap]]></methodname><![CDATA[(~]]><methodname><![CDATA[testid]]></methodname><![CDATA[)]]>
</programlisting><para><ulink url="https://wiki.init.mpg.de/IT4Science/RstatisTik/RstatisTikPortal/RcourSe/FinalFunction/CombMoreDataFrames/IT4Science/RstatisTik/RstatisTikPortal/RcourSe/FinalFunction/CombMoreDataFrames?action=AttachFile&amp;do=get&amp;target=graph2.png"><inlinemediaobject><imageobject><imagedata fileref="https://wiki.init.mpg.de/IT4Science/RstatisTik/RstatisTikPortal/RcourSe/FinalFunction/CombMoreDataFrames?action=AttachFile&amp;do=get&amp;target=graph2.png" width="800"/></imageobject><textobject><phrase>attachment:graph2.png</phrase></textobject></inlinemediaobject></ulink> </para><para>And another one. </para><programlisting format="linespecific" language="highlight" linenumbering="numbered" startinglinenumber="1"><![CDATA[> ]]><methodname><![CDATA[ggplot]]></methodname><![CDATA[(]]><methodname><![CDATA[data]]></methodname><![CDATA[,]]><methodname><![CDATA[aes]]></methodname><![CDATA[(]]><methodname><![CDATA[x]]></methodname><![CDATA[=]]><methodname><![CDATA[testid]]></methodname><![CDATA[,]]><methodname><![CDATA[fill]]></methodname><![CDATA[=]]><methodname><![CDATA[Stim.Type]]></methodname><![CDATA[)) +]]>
<![CDATA[+     ]]><methodname><![CDATA[geom_bar]]></methodname><![CDATA[(]]><methodname><![CDATA[position]]></methodname><![CDATA[=]]><methodname><![CDATA[position_fill]]></methodname><![CDATA[()) +]]>
<![CDATA[+     ]]><methodname><![CDATA[facet_wrap]]></methodname><![CDATA[(~]]><methodname><![CDATA[Subject]]></methodname><![CDATA[)]]>
</programlisting><para><ulink url="https://wiki.init.mpg.de/IT4Science/RstatisTik/RstatisTikPortal/RcourSe/FinalFunction/CombMoreDataFrames/IT4Science/RstatisTik/RstatisTikPortal/RcourSe/FinalFunction/CombMoreDataFrames?action=AttachFile&amp;do=get&amp;target=graph3.png"><inlinemediaobject><imageobject><imagedata fileref="https://wiki.init.mpg.de/IT4Science/RstatisTik/RstatisTikPortal/RcourSe/FinalFunction/CombMoreDataFrames?action=AttachFile&amp;do=get&amp;target=graph3.png" width="800"/></imageobject><textobject><phrase>attachment:graph3.png</phrase></textobject></inlinemediaobject></ulink> </para></section></section></article>