<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=R_-_Data_Processing</id>
	<title>R - Data Processing - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=R_-_Data_Processing"/>
	<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=R_-_Data_Processing&amp;action=history"/>
	<updated>2026-04-23T19:16:15Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://training-course-material.com/index.php?title=R_-_Data_Processing&amp;diff=52353&amp;oldid=prev</id>
		<title>Bernard Szlachta: /* Exercises */</title>
		<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=R_-_Data_Processing&amp;diff=52353&amp;oldid=prev"/>
		<updated>2017-02-14T07:37:07Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Exercises&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Intro to R|010]]&lt;br /&gt;
&lt;br /&gt;
== Tables used in the exercises ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;EMP Table&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 +------+----------+-----------+------+------------+---------+---------+--------+&lt;br /&gt;
 | ID   | ENAME    | JOB       | MGR  | HIREDATE   | SAL     | COMM    | DEPTNO |&lt;br /&gt;
 +------+----------+-----------+------+------------+---------+---------+--------+&lt;br /&gt;
 | 7839 | BUSH     | PRESIDENT | NULL | 1981-11-17 | 5000.00 | NULL    | 10     |&lt;br /&gt;
 | 7698 | BLAIR    | MANAGER   | 7839 | 1981-05-01 | 2850.00 | NULL    | 30     |&lt;br /&gt;
 | 7782 | MERKEL   | MANAGER   | 7839 | 1981-06-09 | 2450.00 | NULL    | 10     |&lt;br /&gt;
 | 7566 | PUTIN    | MANAGER   | 7839 | 1981-04-02 | 2975.00 | NULL    | 20     |&lt;br /&gt;
 | 7654 | CHIRACK  | SALESMAN  | 7698 | 1981-09-28 | 1250.00 | 1400.00 | 30     |&lt;br /&gt;
 | 7499 | BAROSSO  | SALESMAN  | 7698 | 1981-02-20 | 1600.00 | 300.00  | 30     |&lt;br /&gt;
 | 7844 | GATES    | SALESMAN  | 7698 | 1981-09-08 | 1500.00 | 0.00    | 30     |&lt;br /&gt;
 | 7900 | BUFFETT  | CLERK     | 7698 | 1981-12-03 | 950.00  | NULL    | 30     |&lt;br /&gt;
 | 7521 | WALTON   | SALESMAN  | 7698 | 1981-02-22 | 1250.00 | 500.00  | 30     |&lt;br /&gt;
 | 7902 | TOOSK    | ANALYST   | 7566 | 1981-12-03 | 3000.00 | NULL    | 20     |&lt;br /&gt;
 | 7369 | THATCHER | CLERK     | 7902 | 1980-12-17 | 800.00  | NULL    | 20     |&lt;br /&gt;
 | 7788 | CARNEGIE | ANALYST   | 7566 | 1982-12-09 | 3000.00 | NULL    | 20     |&lt;br /&gt;
 | 7876 | FORD     | CLERK     | 7788 | 1983-01-12 | 1100.00 | NULL    | 20     |&lt;br /&gt;
 | 7934 | ELISON   | CLERK     | 7782 | 1982-01-23 | 1300.00 | NULL    | 10     |&lt;br /&gt;
 +------+----------+-----------+------+------------+---------+---------+--------+&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;DEPT Table&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 +--------+------------+----------+&lt;br /&gt;
 | DEPTNO | DNAME      | LOC      |&lt;br /&gt;
 +--------+------------+----------+&lt;br /&gt;
 | 10     | ACCOUNTING | NEW YORK |&lt;br /&gt;
 | 20     | RESEARCH   | LONDON   |&lt;br /&gt;
 | 30     | SALES      | PARIS    |&lt;br /&gt;
 | 40     | OPERATIONS | BERLIN   |&lt;br /&gt;
 +--------+------------+----------+&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SALGRADE Table&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 +-------+-------+-------+&lt;br /&gt;
 | GRADE | LOSAL | HISAL |&lt;br /&gt;
 +-------+-------+-------+&lt;br /&gt;
 | 1     | 700   | 1200  |&lt;br /&gt;
 | 2     | 1201  | 1400  |&lt;br /&gt;
 | 3     | 1401  | 2000  |&lt;br /&gt;
 | 4     | 2001  | 3000  |&lt;br /&gt;
 | 5     | 3001  | 9999  |&lt;br /&gt;
 +-------+-------+-------+&lt;br /&gt;
&lt;br /&gt;
== Loading data ==&lt;br /&gt;
In order to load data from a text file we use &amp;#039;&amp;#039;read.table&amp;#039;&amp;#039; function&lt;br /&gt;
&amp;lt;source lang=&amp;quot;rsplus&amp;quot;&amp;gt; &lt;br /&gt;
emp &amp;lt;- read.table(&amp;quot;https://training-course-material.com/images/9/97/Emp.txt&amp;quot;,header=TRUE)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Show the data&lt;br /&gt;
&amp;lt;source lang=&amp;quot;rsplus&amp;quot;&amp;gt;&lt;br /&gt;
 emp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
     ID    ENAME       JOB  MGR   HIREDATE  SAL COMM DEPTNO&lt;br /&gt;
 1  7839     BUSH PRESIDENT   NA 1981-11-17 5000   NA     10&lt;br /&gt;
 2  7698    BLAIR   MANAGER 7839 1981-05-01 2850   NA     30&lt;br /&gt;
 3  7782   MERKEL   MANAGER 7839 1981-06-09 2450   NA     10&lt;br /&gt;
 4  7566    PUTIN   MANAGER 7839 1981-04-02 2975   NA     20&lt;br /&gt;
 5  7654  CHIRACK  SALESMAN 7698 1981-09-28 1250 1400     30&lt;br /&gt;
 6  7499  BAROSSO  SALESMAN 7698 1981-02-20 1600  300     30&lt;br /&gt;
 7  7844    GATES  SALESMAN 7698 1981-09-08 1500    0     30&lt;br /&gt;
 8  7900  BUFFETT     CLERK 7698 1981-12-03  950   NA     30&lt;br /&gt;
 9  7521   WALTON  SALESMAN 7698 1981-02-22 1250  500     30&lt;br /&gt;
 10 7902    TOOSK   ANALYST 7566 1981-12-03 3000   NA     20&lt;br /&gt;
 11 7369 THATCHER     CLERK 7902 1980-12-17  800   NA     20&lt;br /&gt;
 12 7788 CARNEGIE   ANALYST 7566 1982-12-09 3000   NA     20&lt;br /&gt;
 13 7876     FORD     CLERK 7788 1983-01-12 1100   NA     20&lt;br /&gt;
 14 7934   ELISON     CLERK 7782 1982-01-23 1300   NA     10&lt;br /&gt;
&lt;br /&gt;
Show the structure of the emp data frame&lt;br /&gt;
 &amp;gt; str(emp)&lt;br /&gt;
 &amp;#039;data.frame&amp;#039;:   14 obs. of  8 variables:&lt;br /&gt;
 $ ID      : int  7839 7698 7782 7566 7654 7499 7844 7900 7521 7902 ...&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;$ ENAME   : Factor w/ 14 levels &amp;quot;BAROSSO&amp;quot;,&amp;quot;BLAIR&amp;quot;,..: 4 2 10 11 6 1 9 3 14 13 ...&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 $ JOB     : Factor w/ 5 levels &amp;quot;ANALYST&amp;quot;,&amp;quot;CLERK&amp;quot;,..: 4 3 3 3 5 5 5 2 5 1 ...&lt;br /&gt;
 $ MGR     : int  NA 7839 7839 7839 7698 7698 7698 7698 7698 7566 ...&lt;br /&gt;
 $ HIREDATE: Factor w/ 13 levels &amp;quot;01/05/1981&amp;quot;,&amp;quot;02/04/1981&amp;quot;,..: 8 1 5 2 13 10 4 3 11 3 ...&lt;br /&gt;
 $ SAL     : int  5000 2850 2450 2975 1250 1600 1500 950 1250 3000 ...&lt;br /&gt;
 $ COMM    : int  NA NA NA NA 1400 300 0 NA 500 NA ...&lt;br /&gt;
 $ DEPTNO  : int  10 30 10 20 30 30 30 30 30 20 ...&lt;br /&gt;
&lt;br /&gt;
== Converting Data ==&lt;br /&gt;
ENAME column is not really a factor, but rather a character column&lt;br /&gt;
&lt;br /&gt;
Convert factor to a character&lt;br /&gt;
 emp$ENAME &amp;lt;- as.character(emp$ENAME)&lt;br /&gt;
 &amp;gt; str(emp)&lt;br /&gt;
 &amp;#039;data.frame&amp;#039;:   14 obs. of  8 variables:&lt;br /&gt;
 $ ID      : int  7839 7698 7782 7566 7654 7499 7844 7900 7521 7902 ...&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;$ ENAME   : chr  &amp;quot;BUSH&amp;quot; &amp;quot;BLAIR&amp;quot; &amp;quot;MERKEL&amp;quot; &amp;quot;PUTIN&amp;quot; ...&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 ... &lt;br /&gt;
 $ DEPTNO  : int  10 30 10 20 30 30 30 30 30 20 ...&lt;br /&gt;
&lt;br /&gt;
Similar way convert HIREDATE column&lt;br /&gt;
 emp$HIREDATE &amp;lt;- as.Date(emp$HIREDATE,format=&amp;quot;%d/%m/%Y&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Loading data exercises ===&lt;br /&gt;
# Load &amp;#039;&amp;#039;dept&amp;#039;&amp;#039; and &amp;#039;&amp;#039;salgrade&amp;#039;&amp;#039; tabled into data frames using read.table function.&lt;br /&gt;
Call the variable &amp;#039;&amp;#039;dept&amp;#039;&amp;#039; and &amp;#039;&amp;#039;salgrade&amp;#039;&amp;#039; accordingly &lt;br /&gt;
* https://training-course-material.com/images/a/a7/Dept.txt&lt;br /&gt;
* https://training-course-material.com/images/6/6d/Salgrade.txt&lt;br /&gt;
&lt;br /&gt;
== Trivia ==&lt;br /&gt;
* R is case sensitive&lt;br /&gt;
* White charters are ignored&lt;br /&gt;
* Commands end with semicolon &amp;quot;;&amp;quot; or Enter (new line) charter&lt;br /&gt;
* You can comment the rest of the line with the number character (hash) &amp;quot;#&amp;quot;&lt;br /&gt;
 emp #This is just a comment&lt;br /&gt;
* Operators work the same way as in maths or other programming languages &lt;br /&gt;
 2+2; 12-3; -(10+2); 4*3; 13/4; 2**4; 2^ 4; 2/0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Selecting Data ==&lt;br /&gt;
Display all columns and rows from &amp;#039;&amp;#039;emp&amp;#039;&amp;#039; data frame.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; emp&lt;br /&gt;
      ID    ENAME       JOB  MGR   HIREDATE  SAL COMM DEPTNO&lt;br /&gt;
 1  7839     BUSH PRESIDENT   NA 17/11/1981 5000   NA     10&lt;br /&gt;
 2  7698    BLAIR   MANAGER 7839 01/05/1981 2850   NA     30&lt;br /&gt;
 3  7782   MERKEL   MANAGER 7839 09/06/1981 2450   NA     10&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Select three columns: ename, job and sal and all rows from emp table.&lt;br /&gt;
 &amp;gt; emp[,c(&amp;quot;ENAME&amp;quot;,&amp;quot;JOB&amp;quot;,&amp;quot;SAL&amp;quot;)]&lt;br /&gt;
       ENAME       JOB  SAL&lt;br /&gt;
 1      BUSH PRESIDENT 5000&lt;br /&gt;
 2     BLAIR   MANAGER 2850&lt;br /&gt;
 3    MERKEL   MANAGER 2450&lt;br /&gt;
 ...&lt;br /&gt;
 14   ELISON     CLERK 1300&lt;br /&gt;
&lt;br /&gt;
Select the one column on its own and return a vector&lt;br /&gt;
 &amp;gt; emp$SAL&lt;br /&gt;
 [1] 5000 2850 2450 2975 1250 1600 1500  950 1250 3000  800 3000 1100 1300&lt;br /&gt;
&lt;br /&gt;
=== Combining Data ===&lt;br /&gt;
Select two columns and combine them&lt;br /&gt;
 &amp;gt; data.frame(SAL,ENAME)&lt;br /&gt;
     SAL    ENAME&lt;br /&gt;
 1  5000     BUSH&lt;br /&gt;
 2  2850    BLAIR&lt;br /&gt;
 3  2450   MERKEL&lt;br /&gt;
 4  2975    PUTIN&lt;br /&gt;
 ... &lt;br /&gt;
&lt;br /&gt;
You can add labels as well&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; data.frame(Salary=emp$SAL,&amp;#039;Employee Name&amp;#039; = emp$ENAME)&lt;br /&gt;
    Salary Employee.Name&lt;br /&gt;
 1    5000          BUSH&lt;br /&gt;
 2    2850         BLAIR&lt;br /&gt;
 3    2450        MERKEL&lt;br /&gt;
 4    2975         PUTIN&lt;br /&gt;
 5    1250       CHIRACK&lt;br /&gt;
 6    1600       BAROSSO&lt;br /&gt;
&lt;br /&gt;
Calculate the annual salary&lt;br /&gt;
 &amp;gt; data.frame(emp$ENAME,AnnualSal=emp$SAL*12)&lt;br /&gt;
    emp.ENAME AnnualSal&lt;br /&gt;
 1       BUSH     60000&lt;br /&gt;
 2      BLAIR     34200&lt;br /&gt;
 3     MERKEL     29400&lt;br /&gt;
 4      PUTIN     35700&lt;br /&gt;
 5    CHIRACK     15000&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
=== Attaching dataframe ===&lt;br /&gt;
We can attach the table so we do not have to write the &amp;#039;&amp;#039;emp$&amp;#039;&amp;#039; prefix&lt;br /&gt;
 &amp;gt; attach(emp)&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; data.frame(ENAME,AnnualSal=SAL*12)&lt;br /&gt;
    ENAME    AnnualSal&lt;br /&gt;
 1 &amp;quot;BUSH&amp;quot;     60000&lt;br /&gt;
 2 &amp;quot;BLAIR&amp;quot;    34200&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
=== Concatenation ===&lt;br /&gt;
Concatenate two columns&lt;br /&gt;
 &amp;gt; paste(ENAME,&amp;quot;is&amp;quot;,JOB)&lt;br /&gt;
 [1] &amp;quot;BUSH is PRESIDENT&amp;quot;   &amp;quot;BLAIR is MANAGER&amp;quot;    &amp;quot;MERKEL is MANAGER&amp;quot;   &amp;quot;PUTIN is MANAGER&amp;quot;   &lt;br /&gt;
 [5] &amp;quot;CHIRACK is SALESMAN&amp;quot; &amp;quot;BAROSSO is SALESMAN&amp;quot; &amp;quot;GATES is SALESMAN&amp;quot;   &amp;quot;BUFFETT is CLERK&amp;quot;   &lt;br /&gt;
 [9] &amp;quot;WALTON is SALESMAN&amp;quot;  &amp;quot;TOOSK is ANALYST&amp;quot;    &amp;quot;THATCHER is CLERK&amp;quot;   &amp;quot;CARNEGIE is ANALYST&amp;quot;&lt;br /&gt;
 [13] &amp;quot;FORD is CLERK&amp;quot;       &amp;quot;ELISON is CLERK&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Sorting ==&lt;br /&gt;
Sort by salary in ascending order&lt;br /&gt;
&amp;lt;source lang=&amp;quot;rsplus&amp;quot;&amp;gt;&lt;br /&gt;
 emp[order(SAL),]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Sort by salary in descending order&lt;br /&gt;
&amp;lt;source lang=&amp;quot;rsplus&amp;quot;&amp;gt;&lt;br /&gt;
 emp[order(SAL,decreasing=TRUE),]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Sort by multiple columns&lt;br /&gt;
&amp;lt;source lang=&amp;quot;rsplus&amp;quot;&amp;gt;&lt;br /&gt;
 emp[order(JOB,SAL),]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
            ID    ENAME       JOB  MGR   HIREDATE  SAL COMM DEPTNO&lt;br /&gt;
 TOOSK    7902    TOOSK   ANALYST 7566 03/12/1981 3000   NA     20&lt;br /&gt;
 CARNEGIE 7788 CARNEGIE   ANALYST 7566 09/12/1982 3000   NA     20&lt;br /&gt;
 THATCHER 7369 THATCHER     CLERK 7902 17/12/1980  800   NA     20&lt;br /&gt;
 BUFFETT  7900  BUFFETT     CLERK 7698 03/12/1981  950   NA     30&lt;br /&gt;
 FORD     7876     FORD     CLERK 7788 12/01/1983 1100   NA     20&lt;br /&gt;
 ELISON   7934   ELISON     CLERK 7782 23/01/1982 1300   NA     10&lt;br /&gt;
 MERKEL   7782   MERKEL   MANAGER 7839 09/06/1981 2450   NA     10&lt;br /&gt;
 BLAIR    7698    BLAIR   MANAGER 7839 01/05/1981 2850   NA     30&lt;br /&gt;
 PUTIN    7566    PUTIN   MANAGER 7839 02/04/1981 2975   NA     20&lt;br /&gt;
 BUSH     7839     BUSH PRESIDENT   NA 17/11/1981 5000   NA     10&lt;br /&gt;
 CHIRACK  7654  CHIRACK  SALESMAN 7698 28/09/1981 1250 1400     30&lt;br /&gt;
 WALTON   7521   WALTON  SALESMAN 7698 22/02/1981 1250  500     30&lt;br /&gt;
 GATES    7844    GATES  SALESMAN 7698 08/09/1981 1500    0     30&lt;br /&gt;
 BAROSSO  7499  BAROSSO  SALESMAN 7698 20/02/1981 1600  300     30&lt;br /&gt;
&lt;br /&gt;
Sort by HIREDATE, but do not show it&lt;br /&gt;
 &amp;gt; emp[order(HIREDATE),c(&amp;quot;ENAME&amp;quot;,&amp;quot;SAL&amp;quot;)]&lt;br /&gt;
       ENAME  SAL&lt;br /&gt;
 11 THATCHER  800&lt;br /&gt;
 6   BAROSSO 1600&lt;br /&gt;
 9    WALTON 1250&lt;br /&gt;
 4     PUTIN 2975&lt;br /&gt;
 2     BLAIR 2850&lt;br /&gt;
 3    MERKEL 2450&lt;br /&gt;
 7     GATES 1500&lt;br /&gt;
 5   CHIRACK 1250&lt;br /&gt;
 1      BUSH 5000&lt;br /&gt;
 8   BUFFETT  950&lt;br /&gt;
 10    TOOSK 3000&lt;br /&gt;
 14   ELISON 1300&lt;br /&gt;
 12 CARNEGIE 3000&lt;br /&gt;
 13     FORD 1100&lt;br /&gt;
=== Sorting one column in reverse order ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;rsplus&amp;quot;&amp;gt;&lt;br /&gt;
emp[order(DEPTNO,-SAL, decreasing=TRUE),]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
     ID    ENAME       JOB  MGR   HIREDATE  SAL COMM DEPTNO&lt;br /&gt;
 8  7900  BUFFETT     CLERK 7698 03/12/1981  950   NA     30&lt;br /&gt;
 5  7654  CHIRACK  SALESMAN 7698 28/09/1981 1250 1400     30&lt;br /&gt;
 9  7521   WALTON  SALESMAN 7698 22/02/1981 1250  500     30&lt;br /&gt;
 7  7844    GATES  SALESMAN 7698 08/09/1981 1500    0     30&lt;br /&gt;
 6  7499  BAROSSO  SALESMAN 7698 20/02/1981 1600  300     30&lt;br /&gt;
 2  7698    BLAIR   MANAGER 7839 01/05/1981 2850   NA     30&lt;br /&gt;
 11 7369 THATCHER     CLERK 7902 17/12/1980  800   NA     20&lt;br /&gt;
 13 7876     FORD     CLERK 7788 12/01/1983 1100   NA     20&lt;br /&gt;
 4  7566    PUTIN   MANAGER 7839 02/04/1981 2975   NA     20&lt;br /&gt;
 10 7902    TOOSK   ANALYST 7566 03/12/1981 3000   NA     20&lt;br /&gt;
 12 7788 CARNEGIE   ANALYST 7566 09/12/1982 3000   NA     20&lt;br /&gt;
 14 7934   ELISON     CLERK 7782 23/01/1982 1300   NA     10&lt;br /&gt;
 3  7782   MERKEL   MANAGER 7839 09/06/1981 2450   NA     10&lt;br /&gt;
 1  7839     BUSH PRESIDENT   NA 17/11/1981 5000   NA     10&lt;br /&gt;
&lt;br /&gt;
== Filtering Results ==&lt;br /&gt;
&lt;br /&gt;
Select employees earning more than 2000&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; emp[SAL&amp;gt;2000,]&lt;br /&gt;
      ID    ENAME       JOB  MGR   HIREDATE  SAL COMM DEPTNO&lt;br /&gt;
 1  7839     BUSH PRESIDENT   NA 1981-11-17 5000   NA     10&lt;br /&gt;
 2  7698    BLAIR   MANAGER 7839 1981-05-01 2850   NA     30&lt;br /&gt;
 3  7782   MERKEL   MANAGER 7839 1981-06-09 2450   NA     10&lt;br /&gt;
 4  7566    PUTIN   MANAGER 7839 1981-04-02 2975   NA     20&lt;br /&gt;
 10 7902    TOOSK   ANALYST 7566 1981-12-03 3000   NA     20&lt;br /&gt;
 12 7788 CARNEGIE   ANALYST 7566 1982-12-09 3000   NA     20&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;How does it work?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The SAL&amp;gt;2000 expression returns a vector of boolean values.&lt;br /&gt;
 &amp;gt; SAL&amp;gt;2000&lt;br /&gt;
 [1]  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE&lt;br /&gt;
If the salary is greater than 2000 for a row, the corresponding value will be TRUE, otherwise, FALSE.&lt;br /&gt;
&lt;br /&gt;
Than, the data frame selects only those rows which have true value in the corresponding rows.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select only managers.&lt;br /&gt;
 &amp;gt; emp[JOB == &amp;quot;MANAGER&amp;quot;,]&lt;br /&gt;
    ID  ENAME     JOB  MGR   HIREDATE  SAL COMM DEPTNO&lt;br /&gt;
 2 7698  BLAIR MANAGER 7839 1981-05-01 2850   NA     30&lt;br /&gt;
 3 7782 MERKEL MANAGER 7839 1981-06-09 2450   NA     10&lt;br /&gt;
 4 7566  PUTIN MANAGER 7839 1981-04-02 2975   NA     20&lt;br /&gt;
&lt;br /&gt;
Select people hired before or on 1st of April 1981.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; emp[HIREDATE &amp;lt;= &amp;#039;1981-04-01&amp;#039;,]&lt;br /&gt;
     ID    ENAME      JOB  MGR   HIREDATE  SAL COMM DEPTNO&lt;br /&gt;
 6  7499  BAROSSO SALESMAN 7698 1981-02-20 1600  300     30&lt;br /&gt;
 9  7521   WALTON SALESMAN 7698 1981-02-22 1250  500     30&lt;br /&gt;
 11 7369 THATCHER    CLERK 7902 1980-12-17  800   NA     20&lt;br /&gt;
&lt;br /&gt;
Select all except clerks.&lt;br /&gt;
 &amp;gt; emp[JOB != &amp;#039;CLERK&amp;#039;,]&lt;br /&gt;
     ID    ENAME       JOB  MGR   HIREDATE  SAL COMM DEPTNO&lt;br /&gt;
 1  7839     BUSH PRESIDENT   NA 1981-11-17 5000   NA     10&lt;br /&gt;
 2  7698    BLAIR   MANAGER 7839 1981-05-01 2850   NA     30&lt;br /&gt;
 3  7782   MERKEL   MANAGER 7839 1981-06-09 2450   NA     10&lt;br /&gt;
 4  7566    PUTIN   MANAGER 7839 1981-04-02 2975   NA     20&lt;br /&gt;
 5  7654  CHIRACK  SALESMAN 7698 1981-09-28 1250 1400     30&lt;br /&gt;
 6  7499  BAROSSO  SALESMAN 7698 1981-02-20 1600  300     30&lt;br /&gt;
 7  7844    GATES  SALESMAN 7698 1981-09-08 1500    0     30&lt;br /&gt;
 9  7521   WALTON  SALESMAN 7698 1981-02-22 1250  500     30&lt;br /&gt;
 10 7902    TOOSK   ANALYST 7566 1981-12-03 3000   NA     20&lt;br /&gt;
 12 7788 CARNEGIE   ANALYST 7566 1982-12-09 3000   NA     20&lt;br /&gt;
&lt;br /&gt;
Select only name and salary of salesmen&lt;br /&gt;
 &amp;gt; emp[JOB == &amp;#039;SALESMAN&amp;#039;,c(&amp;quot;ENAME&amp;quot;,&amp;quot;SAL&amp;quot;)]&lt;br /&gt;
     ENAME  SAL&lt;br /&gt;
 5 CHIRACK 1250&lt;br /&gt;
 6 BAROSSO 1600&lt;br /&gt;
 7   GATES 1500&lt;br /&gt;
 9  WALTON 1250&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Complex Expressions ===&lt;br /&gt;
To select people earning from 1000 to 2000 (inclusive) you can type:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;rsplus&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;gt; emp[SAL &amp;gt;= 1000 &amp;amp; SAL &amp;lt;= 2000,]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
     ID   ENAME      JOB  MGR   HIREDATE  SAL COMM DEPTNO&lt;br /&gt;
 5  7654 CHIRACK SALESMAN 7698 1981-09-28 1250 1400     30&lt;br /&gt;
 6  7499 BAROSSO SALESMAN 7698 1981-02-20 1600  300     30&lt;br /&gt;
 7  7844   GATES SALESMAN 7698 1981-09-08 1500    0     30&lt;br /&gt;
 9  7521  WALTON SALESMAN 7698 1981-02-22 1250  500     30&lt;br /&gt;
 13 7876    FORD    CLERK 7788 1983-01-12 1100   NA     20&lt;br /&gt;
 14 7934  ELISON    CLERK 7782 1982-01-23 1300   NA     10&lt;br /&gt;
&lt;br /&gt;
Select people working in department no 10 or 20.&lt;br /&gt;
 &amp;gt; emp[DEPTNO == 10 | DEPTNO == 20,c(&amp;quot;ENAME&amp;quot;,&amp;quot;DEPTNO&amp;quot;)]&lt;br /&gt;
       ENAME DEPTNO&lt;br /&gt;
 1      BUSH     10&lt;br /&gt;
 3    MERKEL     10&lt;br /&gt;
 4     PUTIN     20&lt;br /&gt;
 10    TOOSK     20&lt;br /&gt;
 11 THATCHER     20&lt;br /&gt;
 12 CARNEGIE     20&lt;br /&gt;
 13     FORD     20&lt;br /&gt;
 14   ELISON     10&lt;br /&gt;
&lt;br /&gt;
Select managers, clerks and presidents&lt;br /&gt;
 &amp;gt; emp[JOB == &amp;#039;PRESIDENT&amp;#039; | JOB == &amp;#039;CLERK&amp;#039; | JOB == &amp;#039;MANAGER&amp;#039;,c(&amp;quot;ENAME&amp;quot;,&amp;quot;JOB&amp;quot;)]&lt;br /&gt;
       ENAME       JOB&lt;br /&gt;
 1      BUSH PRESIDENT&lt;br /&gt;
 2     BLAIR   MANAGER&lt;br /&gt;
 3    MERKEL   MANAGER&lt;br /&gt;
 4     PUTIN   MANAGER&lt;br /&gt;
 8   BUFFETT     CLERK&lt;br /&gt;
 11 THATCHER     CLERK&lt;br /&gt;
 13     FORD     CLERK&lt;br /&gt;
 14   ELISON     CLERK&lt;br /&gt;
&lt;br /&gt;
The above can be simplified to:&lt;br /&gt;
 &amp;gt; emp[JOB %in% c(&amp;#039;PRESIDENT&amp;#039;,&amp;#039;CLERK&amp;#039;,&amp;#039;MANAGER&amp;#039;),c(&amp;quot;ENAME&amp;quot;,&amp;quot;JOB&amp;quot;)]&lt;br /&gt;
       ENAME       JOB&lt;br /&gt;
 1      BUSH PRESIDENT&lt;br /&gt;
 2     BLAIR   MANAGER&lt;br /&gt;
 3    MERKEL   MANAGER&lt;br /&gt;
 4     PUTIN   MANAGER&lt;br /&gt;
 8   BUFFETT     CLERK&lt;br /&gt;
 11 THATCHER     CLERK&lt;br /&gt;
 13     FORD     CLERK&lt;br /&gt;
 14   ELISON     CLERK&lt;br /&gt;
&lt;br /&gt;
=== Finding matches ===&lt;br /&gt;
Select people with names starting with “B”.&lt;br /&gt;
 &amp;gt; emp[grep(&amp;quot;B.*&amp;quot;,ENAME),]&lt;br /&gt;
     ID   ENAME       JOB  MGR   HIREDATE  SAL COMM DEPTNO&lt;br /&gt;
 1 7839    BUSH PRESIDENT   NA 17/11/1981 5000   NA     10&lt;br /&gt;
 2 7698   BLAIR   MANAGER 7839 01/05/1981 2850   NA     30&lt;br /&gt;
 6 7499 BAROSSO  SALESMAN 7698 20/02/1981 1600  300     30&lt;br /&gt;
 8 7900 BUFFETT     CLERK 7698 03/12/1981  950   NA     30&lt;br /&gt;
&lt;br /&gt;
Grep function uses regular expression. A couple of other examples:&lt;br /&gt;
&lt;br /&gt;
Select people with second letter ‘a’.&lt;br /&gt;
 &amp;gt; emp[grep(&amp;quot;^.A&amp;quot;,ENAME),]&lt;br /&gt;
     ID    ENAME      JOB  MGR   HIREDATE  SAL COMM DEPTNO&lt;br /&gt;
 6  7499  BAROSSO SALESMAN 7698 20/02/1981 1600  300     30&lt;br /&gt;
 7  7844    GATES SALESMAN 7698 08/09/1981 1500    0     30&lt;br /&gt;
 9  7521   WALTON SALESMAN 7698 22/02/1981 1250  500     30&lt;br /&gt;
 12 7788 CARNEGIE  ANALYST 7566 09/12/1982 3000   NA     20&lt;br /&gt;
&lt;br /&gt;
=== Saving Results in a variable ===&lt;br /&gt;
Find people working in department 20 and 30, order results by their job.&lt;br /&gt;
 &amp;gt; empo &amp;lt;- emp[order(JOB),]&lt;br /&gt;
&lt;br /&gt;
The empo variable contains the ordered elements from emp table by JOB.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; empo[empo$DEPTNO %in% c(10,30),]&lt;br /&gt;
      ID   ENAME       JOB  MGR   HIREDATE  SAL COMM DEPTNO&lt;br /&gt;
 8  7900 BUFFETT     CLERK 7698 03/12/1981  950   NA     30&lt;br /&gt;
 14 7934  ELISON     CLERK 7782 23/01/1982 1300   NA     10&lt;br /&gt;
 2  7698   BLAIR   MANAGER 7839 01/05/1981 2850   NA     30&lt;br /&gt;
 3  7782  MERKEL   MANAGER 7839 09/06/1981 2450   NA     10&lt;br /&gt;
 1  7839    BUSH PRESIDENT   NA 17/11/1981 5000   NA     10&lt;br /&gt;
 5  7654 CHIRACK  SALESMAN 7698 28/09/1981 1250 1400     30&lt;br /&gt;
 6  7499 BAROSSO  SALESMAN 7698 20/02/1981 1600  300     30&lt;br /&gt;
 7  7844   GATES  SALESMAN 7698 08/09/1981 1500    0     30&lt;br /&gt;
 9  7521  WALTON  SALESMAN 7698 22/02/1981 1250  500     30&lt;br /&gt;
&lt;br /&gt;
=== Filtering by date ranges ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;rsplus&amp;quot;&amp;gt;&lt;br /&gt;
emp[&lt;br /&gt;
     HIREDATE &amp;gt;= as.Date(&amp;quot;1981-01-01&amp;quot;) &amp;amp; HIREDATE &amp;lt;= as.Date(&amp;quot;1981-12-31&amp;quot;)&lt;br /&gt;
     ,c(&amp;quot;ENAME&amp;quot;,&amp;quot;HIREDATE&amp;quot;)&lt;br /&gt;
   ]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
      ENAME   HIREDATE&lt;br /&gt;
 1     BUSH 1981-11-17&lt;br /&gt;
 2    BLAIR 1981-05-01&lt;br /&gt;
 3   MERKEL 1981-06-09&lt;br /&gt;
 4    PUTIN 1981-04-02&lt;br /&gt;
 5  CHIRACK 1981-09-28&lt;br /&gt;
 6  BAROSSO 1981-02-20&lt;br /&gt;
 7    GATES 1981-09-08&lt;br /&gt;
 8  BUFFETT 1981-12-03&lt;br /&gt;
 9   WALTON 1981-02-22&lt;br /&gt;
 10   TOOSK 1981-12-03&lt;br /&gt;
&lt;br /&gt;
=== Dealing with NA value ===&lt;br /&gt;
The NA isn’t just zero (0) or an empty string “”. It’s something like a void. Almost every operation with NA returns NA value.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;rsplus&amp;quot;&amp;gt;&lt;br /&gt;
NA*2; NA+2; NA/NA; 12/NA; NA&amp;gt;2; NA==NA;&amp;lt;/source&amp;gt;&lt;br /&gt;
 [1] NA&lt;br /&gt;
 [1] NA&lt;br /&gt;
 [1] NA&lt;br /&gt;
 [1] NA&lt;br /&gt;
 [1] NA&lt;br /&gt;
 [1] NA&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; data.frame(ENAME,SAL,COMM,SAL+COMM)&lt;br /&gt;
       ENAME  SAL COMM SAL...COMM&lt;br /&gt;
 1      BUSH 5000   NA         NA&lt;br /&gt;
 2     BLAIR 2850   NA         NA&lt;br /&gt;
 3    MERKEL 2450   NA         NA&lt;br /&gt;
 4     PUTIN 2975   NA         NA&lt;br /&gt;
 5   CHIRACK 1250 1400       2650&lt;br /&gt;
 6   BAROSSO 1600  300       1900&lt;br /&gt;
 7     GATES 1500    0       1500&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Convert the NA values to 0 with &amp;#039;&amp;#039;ifelse(is.na(COMM),0,COMM)&amp;#039;&amp;#039; expression&lt;br /&gt;
&amp;lt;source lang=&amp;quot;rsplus&amp;quot;&amp;gt; &lt;br /&gt;
 data.frame(&lt;br /&gt;
     ENAME,SAL,COMM,&lt;br /&gt;
     AnnualSal=&lt;br /&gt;
         SAL+ifelse(is.na(COMM),0,COMM)&lt;br /&gt;
 )&amp;lt;/source&amp;gt;&lt;br /&gt;
       ENAME  SAL COMM AnnualSal&lt;br /&gt;
 1      BUSH 5000   NA      5000&lt;br /&gt;
 2     BLAIR 2850   NA      2850&lt;br /&gt;
 3    MERKEL 2450   NA      2450&lt;br /&gt;
 4     PUTIN 2975   NA      2975&lt;br /&gt;
 5   CHIRACK 1250 1400      2650&lt;br /&gt;
 6   BAROSSO 1600  300      1900&lt;br /&gt;
 7     GATES 1500    0      1500&lt;br /&gt;
 8   BUFFETT  950   NA       950&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Select employees with commission more than 300&lt;br /&gt;
 &amp;gt; emp[COMM &amp;gt; 300,]&lt;br /&gt;
        ID   ENAME      JOB  MGR   HIREDATE  SAL COMM DEPTNO&lt;br /&gt;
 NA     NA    &amp;lt;NA&amp;gt;     &amp;lt;NA&amp;gt;   NA       &amp;lt;NA&amp;gt;   NA   NA     NA&lt;br /&gt;
 NA.1   NA    &amp;lt;NA&amp;gt;     &amp;lt;NA&amp;gt;   NA       &amp;lt;NA&amp;gt;   NA   NA     NA&lt;br /&gt;
 NA.2   NA    &amp;lt;NA&amp;gt;     &amp;lt;NA&amp;gt;   NA       &amp;lt;NA&amp;gt;   NA   NA     NA&lt;br /&gt;
 NA.3   NA    &amp;lt;NA&amp;gt;     &amp;lt;NA&amp;gt;   NA       &amp;lt;NA&amp;gt;   NA   NA     NA&lt;br /&gt;
 5    7654 CHIRACK SALESMAN 7698 1981-09-28 1250 1400     30&lt;br /&gt;
 NA.4   NA    &amp;lt;NA&amp;gt;     &amp;lt;NA&amp;gt;   NA       &amp;lt;NA&amp;gt;   NA   NA     NA&lt;br /&gt;
 9    7521  WALTON SALESMAN 7698 1981-02-22 1250  500     30&lt;br /&gt;
 NA.5   NA    &amp;lt;NA&amp;gt;     &amp;lt;NA&amp;gt;   NA       &amp;lt;NA&amp;gt;   NA   NA     NA&lt;br /&gt;
 NA.6   NA    &amp;lt;NA&amp;gt;     &amp;lt;NA&amp;gt;   NA       &amp;lt;NA&amp;gt;   NA   NA     NA&lt;br /&gt;
 NA.7   NA    &amp;lt;NA&amp;gt;     &amp;lt;NA&amp;gt;   NA       &amp;lt;NA&amp;gt;   NA   NA     NA&lt;br /&gt;
 NA.8   NA    &amp;lt;NA&amp;gt;     &amp;lt;NA&amp;gt;   NA       &amp;lt;NA&amp;gt;   NA   NA     NA&lt;br /&gt;
 NA.9   NA    &amp;lt;NA&amp;gt;     &amp;lt;NA&amp;gt;   NA       &amp;lt;NA&amp;gt;   NA   NA     NA&lt;br /&gt;
&lt;br /&gt;
Remove all rows with NA values in any column&lt;br /&gt;
 &amp;gt; na.omit(emp[COMM &amp;gt; 300,])&lt;br /&gt;
     ID   ENAME      JOB  MGR   HIREDATE  SAL COMM DEPTNO&lt;br /&gt;
 5 7654 CHIRACK SALESMAN 7698 1981-09-28 1250 1400     30&lt;br /&gt;
 9 7521  WALTON SALESMAN 7698 1981-02-22 1250  500     30&lt;br /&gt;
&lt;br /&gt;
== Showing Unique Values ==&lt;br /&gt;
levels(emp$JOB)&lt;br /&gt;
unique(emp$JOB)&lt;br /&gt;
&lt;br /&gt;
==Exercises==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1.  Exercise&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Load &amp;#039;&amp;#039;dept&amp;#039;&amp;#039; and &amp;#039;&amp;#039;salgrade&amp;#039;&amp;#039; tabled into data frames using read.table function from locations below:&lt;br /&gt;
#* https://training-course-material.com/images/a/a7/Dept.txt&lt;br /&gt;
#* https://training-course-material.com/images/6/6d/Salgrade.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2.  Exercise&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Select all rows from SALGRADE dataframe.&lt;br /&gt;
   GRADE LOSAL HISAL&lt;br /&gt;
 1     1   700  1200&lt;br /&gt;
 2     2  1201  1400&lt;br /&gt;
 3     3  1401  2000&lt;br /&gt;
 4     4  2001  3000&lt;br /&gt;
 5     5  3001  9999&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3.  Exercise&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Select shown data about employees who earn between 1000 and 2000. &lt;br /&gt;
      ENAME DEPTNO  SAL&lt;br /&gt;
 5  CHIRACK     30 1250&lt;br /&gt;
 6  BAROSSO     30 1600&lt;br /&gt;
 7    GATES     30 1500&lt;br /&gt;
 9   WALTON     30 1250&lt;br /&gt;
 13    FORD     20 1100&lt;br /&gt;
 14  ELISON     10 1300&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;4.  Exercise&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Select number and name of departments. Order them by department name.&lt;br /&gt;
   DEPTNO      DNAME&lt;br /&gt;
 1     10 ACCOUNTING&lt;br /&gt;
 4     40 OPERATIONS&lt;br /&gt;
 2     20   RESEARCH&lt;br /&gt;
 3     30      SALES&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;5.  Exercise&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Select all distinct jobs.&lt;br /&gt;
 [1] PRESIDENT MANAGER   SALESMAN  CLERK     ANALYST  &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;6.  Exercise&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Select the data shown below about employees working in departments 10 and 20.&lt;br /&gt;
Sort the results by their names in descending order.&lt;br /&gt;
       ENAME       JOB DEPTNO&lt;br /&gt;
 10    TOOSK   ANALYST     20&lt;br /&gt;
 11 THATCHER     CLERK     20&lt;br /&gt;
 4     PUTIN   MANAGER     20&lt;br /&gt;
 3    MERKEL   MANAGER     10&lt;br /&gt;
 13     FORD     CLERK     20&lt;br /&gt;
 14   ELISON     CLERK     10&lt;br /&gt;
 12 CARNEGIE   ANALYST     20&lt;br /&gt;
 1      BUSH PRESIDENT     10&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;7.  Exercise&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Select clerks working in department no 20.&lt;br /&gt;
       ENAME   JOB DEPTNO&lt;br /&gt;
 11 THATCHER CLERK     20&lt;br /&gt;
 13     FORD CLERK     20&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;8.  Exercise&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Select employees who have a boss.&lt;br /&gt;
       ENAME  MGR&lt;br /&gt;
 2     BLAIR 7839&lt;br /&gt;
 3    MERKEL 7839&lt;br /&gt;
 4     PUTIN 7839&lt;br /&gt;
 5   CHIRACK 7698&lt;br /&gt;
 6   BAROSSO 7698&lt;br /&gt;
 7     GATES 7698&lt;br /&gt;
 8   BUFFETT 7698&lt;br /&gt;
 9    WALTON 7698&lt;br /&gt;
 10    TOOSK 7566&lt;br /&gt;
 11 THATCHER 7902&lt;br /&gt;
 12 CARNEGIE 7566&lt;br /&gt;
 13     FORD 7788&lt;br /&gt;
 14   ELISON 7782&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;9.  Exercise&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Select manager’s annual remuneration.&lt;br /&gt;
         Ename AnnaulSal&lt;br /&gt;
 1    1  BLAIR     34200&lt;br /&gt;
 2    2 MERKEL     29400&lt;br /&gt;
 3    3  PUTIN     35700  &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;10.  Exercise&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Select monthly remuneration (salary and commission).&lt;br /&gt;
             Ename Remuneration&lt;br /&gt;
      1     BUSH         5000&lt;br /&gt;
      2    BLAIR         2850&lt;br /&gt;
      3   MERKEL         2450&lt;br /&gt;
      4    PUTIN         2975&lt;br /&gt;
      5  CHIRACK         2650&lt;br /&gt;
      6  BAROSSO         1900&lt;br /&gt;
      7    GATES         1500&lt;br /&gt;
      8  BUFFETT          950&lt;br /&gt;
      9   WALTON         1750&lt;br /&gt;
     10    TOOSK         3000&lt;br /&gt;
     11 THATCHER          800&lt;br /&gt;
     12 CARNEGIE         3000&lt;br /&gt;
     13     FORD         1100&lt;br /&gt;
     14   ELISON         1300&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;11.  Exercise*&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Select workers hired in 1982.&lt;br /&gt;
       ENAME   HIREDATE&lt;br /&gt;
 12 CARNEGIE 1982-12-09&lt;br /&gt;
 14   ELISON 1982-01-23&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;12.  Exercise&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Select employees whose commission is greater than their salary.&lt;br /&gt;
     ENAME  SAL COMM&lt;br /&gt;
 5 CHIRACK 1250 1400&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;13.  Exercise&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Write a select statement which returns output below (use concatenation).&lt;br /&gt;
  [1] &amp;quot;BUSH is PRESIDENT and work in department no 10&amp;quot;  &lt;br /&gt;
  [2] &amp;quot;BLAIR is MANAGER and work in department no 30&amp;quot;   &lt;br /&gt;
  [3] &amp;quot;MERKEL is MANAGER and work in department no 10&amp;quot;  &lt;br /&gt;
  [4] &amp;quot;PUTIN is MANAGER and work in department no 20&amp;quot;   &lt;br /&gt;
  [5] &amp;quot;CHIRACK is SALESMAN and work in department no 30&amp;quot;&lt;br /&gt;
  [6] &amp;quot;BAROSSO is SALESMAN and work in department no 30&amp;quot;&lt;br /&gt;
  [7] &amp;quot;GATES is SALESMAN and work in department no 30&amp;quot;  &lt;br /&gt;
  [8] &amp;quot;BUFFETT is CLERK and work in department no 30&amp;quot;   &lt;br /&gt;
  [9] &amp;quot;WALTON is SALESMAN and work in department no 30&amp;quot; &lt;br /&gt;
 [10] &amp;quot;TOOSK is ANALYST and work in department no 20&amp;quot;   &lt;br /&gt;
 [11] &amp;quot;THATCHER is CLERK and work in department no 20&amp;quot;  &lt;br /&gt;
 [12] &amp;quot;CARNEGIE is ANALYST and work in department no 20&amp;quot;&lt;br /&gt;
 [13] &amp;quot;FORD is CLERK and work in department no 20&amp;quot;      &lt;br /&gt;
 [14] &amp;quot;ELISON is CLERK and work in department no 10&amp;quot;   &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;14.  Exercise&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Find employees with second letter “L” and third “A”.&lt;br /&gt;
     ID ENAME     JOB  MGR   HIREDATE  SAL COMM DEPTNO&lt;br /&gt;
 2 7698 BLAIR MANAGER 7839 1981-05-01 2850   NA     30&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;15.  Exercise&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Find employees whose name contains T and ends with N.&lt;br /&gt;
 [1] &amp;quot;PUTIN&amp;quot;  &amp;quot;WALTON&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;16.  Exercise&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Find employees who either work as managers or work in department no 10, but not both.&lt;br /&gt;
Hint: use &amp;#039;&amp;#039;xor()&amp;#039;&amp;#039; operator&lt;br /&gt;
&lt;br /&gt;
      ID  ENAME       JOB  MGR   HIREDATE  SAL COMM DEPTNO&lt;br /&gt;
 1  7839   BUSH PRESIDENT   NA 1981-11-17 5000   NA     10&lt;br /&gt;
 2  7698  BLAIR   MANAGER 7839 1981-05-01 2850   NA     30&lt;br /&gt;
 4  7566  PUTIN   MANAGER 7839 1981-04-02 2975   NA     20&lt;br /&gt;
 14 7934 ELISON     CLERK 7782 1982-01-23 1300   NA     10&lt;/div&gt;</summary>
		<author><name>Bernard Szlachta</name></author>
	</entry>
</feed>