Skip to content

Problem with col

7 messages · Sarah Goslee, John Kane, Sonia Amin

#
Dear All,

I have written the following lines:

 data<-read.table("C:\\Users\\intel\\Documents\\SIIID\\datamultiplereg.txt",header
= FALSE, sep = "")
 colnames(data)<-c("Consommation","Cylindre","Puissance","Poids")
 result.model1<-lm(Consommation~Cylindre+Puissance+Poids, data=data)
summary(result.model1)

I obtained the following message:


Call:
lm(formula = Consommation ~ Cylindre + Puissance + Poids, data = data)

Residuals:
Error in quantile.default(resid) : factors are not allowed
In addition: warning message:
In Ops.factor(r, 2) :
  ?^? This is not relevant for factors


Where is the problem?
Thank you in advance
#
What is the problem? One or more of your columns was read as factor, as

str(data)

would show you. To avoid this, you can add stringsAsFactors=FALSE to
the read.table command, but if you expect your data to be entirely
numeric then there's something wrong with it that you need to hunt
down.

Sarah
On Mon, Apr 20, 2015 at 12:33 PM, Sonia Amin <soniaamin5 at gmail.com> wrote:
#
Sorry Sarah  for my basic question: what does "a column was read as factor"
mean?

When I type data , I obtain all the numeric values and the headears  I
added (Consommation,Cylindre,Puissance,Poids)

Thanks



2015-04-20 18:40 GMT+02:00 Sarah Goslee <sarah.goslee at gmail.com>:

  
  
#
On Mon, Apr 20, 2015 at 12:56 PM, Sonia Amin <soniaamin5 at gmail.com> wrote:
A factor is one of the basic types of data in R, and in statistics
generally, eg M/F or red/white/blue - a predetermined set of
categories that may or may not have an order.

More relevantly, if there's something wrong in your data, a stray
letter or quote mark for instance, that column is no longer numeric,
and R will read it as a factor by default, otherwise as character.

str(data)

which is NOT the same as just typing data, will show you the classes
of your columns, among other things.
If you just look at data directly, you'll see what look like numbers,
perhaps, but according to R one or more columns are not actually
numbers. That's why you need str(data).

Your problem looks like a lack of basic understanding of how R works.
Here are a couple of sources that might help you get started:
http://www.burns-stat.com/documents/tutorials/impatient-r/
http://cyclismo.org/tutorial/R/


For more help, you should provide at least the output of str(data) to
the list, and ideally a reproducible example. Here are some
suggestions for creating a good reproducible example:
http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example

Sarah
#
--- clip--
No you probably do not, as Sarah explained.

As a quick example of the issue look at the two data sets below. Just copy and paste into your R editor.  Both data sets are in dput() format which is how you should supply sample data to R-help.

ddat1  <-   structure(list(aa = structure(1:4, .Label = c("a", "b", "c",
"d"), class = "factor"), bb = 1:4), .Names = c("aa", "bb"), row.names = c(NA,
-4L), class = "data.frame")

ddat2 <- structure(list(aa = c("a", "b", "c", "d"), bb = c("1", "2", "3", "4")), .Names = c("aa", "bb"), row.names = c(NA, -4L), class = "data.frame")

If yo do
dat1
dat2
they look the same on the screen but if you do str()  they are not the same.
str(dat1) 
str(dat2)

Also try 
ddat1$bb * 5  #works
ddat2$bb * 5 # error!


They look the same on the computer screen but they are quite different.

John Kane
Kingston ON Canada
____________________________________________________________
Can't remember your password? Do you need a strong and secure password?
Use Password manager! It stores your passwords & protects your account.
#
Thank you very much Sarah

2015-04-20 19:05 GMT+02:00 Sarah Goslee <sarah.goslee at gmail.com>:

  
  
#
Thank you very much John I understand the problem.

2015-04-20 19:38 GMT+02:00 John Kane <jrkrideau at inbox.com>: