Hello I have a dataframe, at least I think I created it by using: DELTA <- as.data.frame(DELTA) The dataframe has 2 columns made of numbers("data" and "delta") If I use DELTA$delta + 12 I get a sequence of NA Warning message: "+" not meaningful for factors in: Ops.factor(DELTA$deltatemp, 12) What does this mean? Can you explain me please why I can not make this simple calculation? And what can I do to the calculation? further information: mode(DELTA) [1] "list" DELTA$delta ..... [685] 6.04 7.84 8.01 8.43 6.6 6.33 8.42 8.86 10.25 8.2 9.32 9.77 [697] 7.9 6.42 5.95 474 Levels: -0.02 -0.13 -0.22 -0.46 -0.55 -1.26 -1.83 -1.86 -2.45 -3.2 ... 9.9 What does this last row mean? Thanks a lot for the answer and on general for the help contaned in the mailing list Mike
Hi, ----- Original Message ----- From: "Mike Campana" <mike.campana at freesurf.ch> To: <r-help at stat.math.ethz.ch> Sent: Thursday, March 11, 2004 12:20 PM Subject: [R] failure in simple calculation!!> Hello > > I have a dataframe, at least I think I created it by using: > > DELTA <- as.data.frame(DELTA) > > The dataframe has 2 columns made of numbers("data" and "delta") > > If I use DELTA$delta + 12 > I get a sequence of NA Warning message: > "+" not meaningful for factors in: Ops.factor(DELTA$deltatemp, 12) > > What does this mean? Can you explain me please why I can not make this > simple calculation? And what can I do to the calculation? > > further information: > mode(DELTA) > [1] "list" > > DELTA$delta > ..... > [685] 6.04 7.84 8.01 8.43 6.6 6.33 8.42 8.86 10.25 8.2 9.329.77> [697] 7.9 6.42 5.95 > 474 Levels: -0.02 -0.13 -0.22 -0.46 -0.55 -1.26 -1.83 -1.86 -2.45 -3.2 ... > 9.9 > What does this last row mean?Several things. 1) DELTA is not a data frame here. It is a list: mode(DELTA) 2) DELTA$delta is not a vector. It is a factor. For some reason when you generated DELTA, your delta has become a factor. Arithematic operations on factors are meaningless. HTH. Kevin -------------------------------------------- Ko-Kang Kevin Wang, MSc(Hon) Statistics Workshops Co-ordinator Student Learning Centre University of Auckland New Zealand
On Thu, 11 Mar 2004, Ko-Kang Kevin Wang wrote:> Hi, > > ----- Original Message ----- > From: "Mike Campana" <mike.campana at freesurf.ch> > To: <r-help at stat.math.ethz.ch> > Sent: Thursday, March 11, 2004 12:20 PM > Subject: [R] failure in simple calculation!! > > > > Hello > > > > I have a dataframe, at least I think I created it by using: > > > > DELTA <- as.data.frame(DELTA) > > > > The dataframe has 2 columns made of numbers("data" and "delta") > > > > If I use DELTA$delta + 12 > > I get a sequence of NA Warning message: > > "+" not meaningful for factors in: Ops.factor(DELTA$deltatemp, 12) > > > > What does this mean? Can you explain me please why I can not make this > > simple calculation? And what can I do to the calculation? > > > > further information: > > mode(DELTA) > > [1] "list" > > > > DELTA$delta > > ..... > > [685] 6.04 7.84 8.01 8.43 6.6 6.33 8.42 8.86 10.25 8.2 9.32 > 9.77 > > [697] 7.9 6.42 5.95 > > 474 Levels: -0.02 -0.13 -0.22 -0.46 -0.55 -1.26 -1.83 -1.86 -2.45 -3.2 ... > > 9.9 > > What does this last row mean? > > > Several things. > > 1) DELTA is not a data frame here. It is a list: mode(DELTA)A data frame is a list (almost all classed objects are), so the mode is reported as a list. Asking the class() would have been more revealing.> 2) DELTA$delta is not a vector. It is a factor. For some reason when you > generated DELTA, your delta has become a factor. Arithematic operations on > factors are meaningless.as.data.frame will coerce character columns to factors. The fix is probably DELTA$delta <- as.numeric(as.character(DELTA$delta)) see the FAQ, Q7.12. -- Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595