<?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>FAQ/Ratomic</title><revhistory><revision><revnumber>7</revnumber><date>2013-03-08 10:17:16</date><authorinitials>localhost</authorinitials><revremark>converted to 1.6 markup</revremark></revision><revision><revnumber>6</revnumber><date>2009-06-10 12:21:51</date><authorinitials>PeterWatson</authorinitials></revision><revision><revnumber>5</revnumber><date>2009-06-10 12:21:42</date><authorinitials>PeterWatson</authorinitials></revision><revision><revnumber>4</revnumber><date>2009-06-10 12:19:45</date><authorinitials>PeterWatson</authorinitials></revision><revision><revnumber>3</revnumber><date>2009-06-10 12:19:31</date><authorinitials>PeterWatson</authorinitials></revision><revision><revnumber>2</revnumber><date>2009-06-10 12:19:07</date><authorinitials>PeterWatson</authorinitials></revision><revision><revnumber>1</revnumber><date>2009-06-10 12:18:31</date><authorinitials>PeterWatson</authorinitials></revision></revhistory></articleinfo><section><title>How to avoid &quot;$ operator is invalid for atomic vectors&quot; in R</title><para>Using some versions of R (2.8 and 2.9) you sometimes get the mystifying error message <emphasis> &quot;$ operator is invalid for atomic vectors&quot; </emphasis>. This can happen even if the R code you are running worked in earlier versions. </para><para>This may be due to inputting data as matrix data rather than a dataframe in R. You can so this conversion easily using the command as.data.frame. </para><screen><![CDATA[% matrix data
b=matrix(a,3,2,byrow=T)
% converted to dataframe format
c=as.data.frame(b)]]></screen><para>This advice is presented in fuller detail <ulink url="https://stat.ethz.ch/pipermail/r-help/2008-November/179050.html">here.</ulink> </para></section></article>