[R] transforming a dataset for association analysis

Rainer Hurling rhurlin at gwdg.de
Sat Oct 30 14:11:22 CEST 2010


On 30.10.2010 13:50 (UTC+1), Santosh Srinivas wrote:
> A more usable problem input would definitely help ... use dput to send a
> reproducible sample to the group
>
> Think the below should solve your problem
>
>> read.csv("Book1.csv")
>      Subject   Item Score
> 1 Subject 1 Item 1     1
> 2 Subject 1 Item 2     0
> 3 Subject 1 Item 3     1
> 4 Subject 2 Item 1     1
> 5 Subject 2 Item 2     1
> 6 Subject 2 Item 3     0
>
>> library("reshape2")
>> tDat.m<- melt(tDat)
>
>> tDatCast<- acast(tDat.m,Subject~Item)
>> tDatCast
>            Item 1 Item 2 Item 3
> Subject 1      1      0      1
> Subject 2      1      1      0


# Or without using package reshape2, only function reshape from stats:

df <- data.frame(Subject=
                    c("Subject 1","Subject 1","Subject 1","Subject 1",
                      "Subject 2","Subject 2","Subject 2","Subject 2"),
                  Item   =
                    c("Item 1","Item 2","Item 3","Item 4",
                      "Item 1","Item 2","Item 3","Item 4"),
                  Score  = c(1,0,1,1,1,1,0,0))

df.wide <- reshape(df, idvar="Subject", timevar="Item", direction="wide")
names(df.wide) <- c("Subject",unique(as.character(df$Item)))

df.wide
     Subject Item 1 Item 2 Item 3 Item 4
1 Subject 1      1      0      1      1
5 Subject 2      1      1      0      0


> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On
> Behalf Of Ajay Ohri
> Sent: 30 October 2010 16:27
> To: Rhelp
> Subject: [R] transforming a dataset for association analysis
>
> Hi
>
> I would like to transform  a data frame like
>
> Subject    Item   Score
> Subject 1 Item 1 1
> Subject 1 Item 2 0
> Subject 1 Item 3 1
> Subject 2 Item 1 1
> Subject 2 Item 2 1
> Subject 2 Item 3 0
> ....
> *to *
>
> Subject      Item1   Item2   Item3 .....Item N
> Subject1       1          0       1
> Subject2       1          1        0
> ........
> SubjectP..
>
> Apologize for the simple nature of my query but I am stuck. How can I do
> this transformation?
>
> Regards
>
> Ajay
>
>
>
> Websites-
> http://decisionstats.com
> http://dudeofdata.com
>
>
> Linkedin- www.linkedin.com/in/ajayohri
>
>
>
>
> On Sat, Oct 30, 2010 at 2:39 PM, Alaios<alaios at yahoo.com>  wrote:
>
>> Hello everyone.
>> I have written quite a big function that at the end correctly returns the
>> values
>> I want. I found a rare exception that I want to cover also. The easier for
>> me
>> would be to write something like that
>>
>>
>> function(){
>>
>>   if (rare exception happened)
>>       return that value
>>
>>   # The comes the code for normal execution
>>   # ...
>>   # ...
>>   return value # Normal values to return
>>
>> }
>>
>>
>> Would that be feasible with R or two returns statements are not accepted?
>>
>> Regards
>> Alex



More information about the R-help mailing list