[R] R: Structuring data for Correspondence Analysis

Alfredo @||redo@rocc@to @end|ng |rom |@@twebnet@|t
Thu Apr 4 10:56:58 CEST 2019


Hi Michael et al,

I solved by myself simply running the code below.

Thanks anyway for the answers

Alfredo

 

 

t <- read.csv(file="C:\\Temp\\radio_survey.csv", header=TRUE, sep=",")

 

t1 <- table(t$Preference, t$Sex)

t2 <- table(t$Preference, t$Age)

t3 <- table(t$Preference, t$Time)

 

ct <- cbind(t1, t2, t3)

 

ca <- ca(ct)

 

 

 

 

-----Messaggio originale-----
Da: Michael Friendly <friendly using yorku.ca> 
Inviato: sabato 30 marzo 2019 16:52
A: Alfredo <alfredo.roccato using fastwebnet.it>; r-help using R-project.org
Oggetto: Re: Structuring data for Correspondence Analysis

 

I think something like table(Preference, Sex, data=table) will get you started. With 3+ variables, you are probably looking for a MCA analysis or simple CA using the stacked approach.

 

Your SAS table statement,

 

table Preference, Sex Age Time;

 

treats Preference vs. all combinations of Sex, Age & Time.  This corresponds to a loglinear model asserting Preference is jointly independent of the other three.

 

See the vignette for the vcdExtra package for this kind of thing more generally.

 

install.packages("vcdExtra")

browseVignettes("vcdExtra")

 

See my book, Discrete Data Analysis with R,  <http://ddar.datavis.ca/> http://ddar.datavis.ca/

 

best,

-Michael

 

On 3/29/2019 9:35 AM, Alfredo wrote:

> Hi, I am very new to r and need help from you to do a correspondence 

> analysis because I don't know how to structure the following data:

> 

> Thank you.

> 

> Alfredo

> 

>   

> 

> library(ca,lib.loc=folder)

> 

> table <- read.csv(file="C:\\Temp\\Survey_Data.csv", header=TRUE, 

> sep=",")

> 

> head (table, n=20)

> 

>                  Preference   Sex        Age   Time

> 

> 1           News/Info/Talk     M      25-30  06-09

> 

> 2                Classical     F      >35    09-12

> 

> 3          Rock and Top 40     F      21-25  12-13

> 

> 4                     Jazz     M      >35    13-16

> 

> 5           News/Info/Talk     F      25-30  16-18

> 

> 6             Don't listen     F      30-35  18-20

> 

> ...

> 

> 19         Rock and Top 40     M      25-30  16-18

> 

> 20          Easy Listening     F      >35    18-20

> 

>   

> 

> In SAS I would simply do this:

> 

> proc corresp data=table dim=2 outc=_coord;

> 

>     table Preference, Sex Age Time;

> 

> run;

> 

>   

> 

> I don't know how convert in R a data frame to a frequency table to 

> execute properly this function:

> 

> ca <- ca(<frequency table>, graph=FALSE)

> 

> 

>          [[alternative HTML version deleted]]

> 

 

 

-- 

Michael Friendly     Email: friendly AT yorku DOT ca

Professor, Psychology Dept. & Chair, ASA Statistical Graphics Section

York University      Voice: 416 736-2100 x66249 Fax: 416 736-5814

4700 Keele Street    Web:    <http://www.datavis.ca> http://www.datavis.ca  |  @datavisFriendly

Toronto, ONT  M3J 1P3 CANADA


	[[alternative HTML version deleted]]



More information about the R-help mailing list