[R] Basic question: Reading in multiple choice question responses to a single column in data frame
Damion Dooley
damion at learningpoint.ca
Thu Aug 20 04:49:04 CEST 2009
Hi, Magnus,
I discovered that
multis = strsplit(as.character(d$b),",")
Works in the example you gave. Thanks very much, looks like that's the way
I'll go for now. P.s. for those others who may want, my selected column was
plugged in as
myData=read.delim(myDataFile etc. etc....);
myColumn = myData[[myQuestion]]; #myQuestion is name of column
d = data.frame(a=1:length(myColumn),b=myColumn);
multis = strsplit(as.character(d$b),",");
etc. as per Magnus's code.
And thank you Frank for pointing me to mChoice, which will require further
study on my part.
Regards,
Damion
Damion Dooley . LearningPoint.ca Website Technology . 604 877 0304
-----Original Message-----
From: Magnus Torfason [mailto:zulutime.net at gmail.com]
Sent: August 19, 2009 12:33 PM
To: Damion Dooley
Cc: r-help at r-project.org
Subject: Re: [R] Basic question: Reading in multiple choice question
responses to a single column in data frame
Are you looking for something like this?
> d = data.frame(a=1:5,b=c("1","2,3","2","3,4","1"))
> d
a b
1 1 1
2 2 2,3
3 3 2
4 4 3,4
5 5 1
> multis = strsplit(d$b,",")
> counts = sapply(strsplit(d$b,","),length )
> d2 = data.frame( a=rep(d$a,counts), b=unlist(multis) )
> d2
a b
1 1 1
2 2 2
3 2 3
4 3 2
5 4 3
6 4 4
7 5 1
Best,
Magnus
On 8/19/2009 3:12 PM, Damion Dooley wrote:
> I'm using read.delim to successfully read in tab delimited data, but
> some columns' values are comma seperated, reflecting the fact that
> user chose a few answers on a multi-select question. I understand
> that each answer is its own category and so could be represented as a
> seperate column in the data set, but I'd like the option of reading in
> the data column, and converting it to a vector that has all row values
> (comma seperated or not) each have their own vector entry, so that the
> "table(columnData)" function does counts correctly.
> ...
More information about the R-help
mailing list