0

Currently my data is set up like this:

Question  Type Student  Bin1  Bin2     Bin3
1        Q   SNR  789331  4.25  4.00 4.666667
2       Q2   SNR  789331  3.75  2.50 3.000000
3       Q8   SNR  789331  4.00  2.50 3.333333
4      Q10   SNR  789331  4.00  2.75 3.333333
5      Q12   SNR  789331  3.50  3.25 3.666667
6        Q   SNR  805933  4.25  4.00       NA

but I would like to convert it into this:

Student Question Type   timePeriod     Rating
1  789331        Q  SNR      Bin 1  4.666667
2  789331       Q2  SNR      Bin 1  3.000000
3  789331       Q8  SNR      Bin 1  3.333333
4  789331      Q10  SNR      Bin 1  3.333333
5  789331      Q12  SNR      Bin 1  3.666667
6  805933        Q  SNR      Bin 2        NA

The code I have written is:

pulse1<-NULL
 timePeriods<-c("Bin 1", "Bin 2", "Bin 3")


 for (columnNumber in 1:3)
 {
   temp.data<-data.frame(Student=pulse$Student, Question=pulse$Question, Type=pulse$Type, timePeriod=timePeriods[columnNumber],                      Rating=pulse[, columnNumber+3])
   pulse1<-rbind(pulse1, temp.data)  
 }
 head(pulse1)

However, this code doesn't see to be working. Instead of combing the final three columns, it is just taking the first of them (i.e. "Bin1).

I am a complete R beginner and would really appreciate any help!!

This question is related to a previous one I posted, however I am going back a step because my other questioned seemed to only be skimming the surface of the problem. This one is clarifying if what I originally set out to do even happened at all.

My data is attached below:

> dput(pulse)
structure(list(Question = c("Q", "Q2", "Q8", "Q10", "Q12", "Q", 
"Q2", "Q8", "Q10", "Q12", "Q", "Q2", "Q8", "Q10", "Q12", "Q", 
"Q2", "Q8", "Q10", "Q12", "Q", "Q2", "Q8", "Q10", "Q12", "Q", 
"Q2", "Q8", "Q10", "Q12", "Q", "Q2", "Q8", "Q10", "Q12", "Q", 
"Q2", "Q8", "Q10", "Q12", "Q", "Q2", "Q8", "Q10", "Q12", "Q", 
"Q2", "Q8", "Q10", "Q12", "Q", "Q2", "Q8", "Q10", "Q12", "Q", 
"Q2", "Q8", "Q10", "Q12", "Q", "Q2", "Q8", "Q10", "Q12", "Q", 
"Q2", "Q8", "Q10", "Q12", "Q", "Q2", "Q8", "Q10", "Q12", "Q", 
"Q2", "Q8", "Q10", "Q12", "Q", "Q2", "Q8", "Q10", "Q12", "Q", 
"Q2", "Q8", "Q10", "Q12", "Q", "Q2", "Q8", "Q10", "Q12", "Q", 
"Q2", "Q8", "Q10", "Q12", "Q", "Q2", "Q8", "Q10", "Q12", "Q", 
"Q2", "Q8", "Q10", "Q12", "Q", "Q2", "Q8", "Q10", "Q12", "Q", 
"Q2", "Q8", "Q10", "Q12", "Q", "Q2", "Q8", "Q10", "Q12", "Q", 
"Q2", "Q8", "Q10", "Q12", "Q", "Q2", "Q8", "Q10", "Q12", "Q", 
"Q2", "Q8", "Q10", "Q12", "Q", "Q2", "Q8", "Q10", "Q12", "Q", 
"Q2", "Q8", "Q10", "Q12", "Q", "Q2", "Q8", "Q10", "Q12", "Q", 
"Q2", "Q8", "Q10", "Q12", "Q", "Q2", "Q8", "Q10", "Q12", "Q", 
"Q2", "Q8", "Q10", "Q12", "Q", "Q2", "Q8", "Q10", "Q12", "Q", 
"Q2", "Q8", "Q10", "Q12", "Q", "Q2", "Q8", "Q10", "Q12", "Q", 
"Q2", "Q8", "Q10", "Q12", "Q", "Q2", "Q8", "Q10", "Q12", "Q", 
"Q2", "Q8", "Q10", "Q12", "Q", "Q2", "Q8", "Q10", "Q12"), Type = c("SNR", 
"SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", 
"SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", 
"SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", 
"SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", 
"SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", 
"SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", 
"SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", 
"SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", 
"SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", 
"SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", 
"SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", 
"SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", 
"SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", "SNR", 
"SNR", "SNR", "FYS", "FYS", "FYS", "FYS", "FYS", "FYS", "FYS", 
"FYS", "FYS", "FYS", "FYS", "FYS", "FYS", "FYS", "FYS", "FYS", 
"FYS", "FYS", "FYS", "FYS", "FYS", "FYS", "FYS", "FYS", "FYS", 
"FYS", "FYS", "FYS", "FYS", "FYS", "FYS", "FYS", "FYS", "FYS", 
"FYS", "FYS", "FYS", "FYS", "FYS", "FYS", "FYS", "FYS", "FYS", 
"FYS", "FYS", "FYS", "FYS", "FYS", "FYS", "FYS", "FYS", "FYS", 
"FYS", "FYS", "FYS", "FYS", "FYS", "FYS", "FYS", "FYS", "FYS", 
"FYS", "FYS", "FYS", "FYS", "FYS", "FYS", "FYS", "FYS", "FYS", 
"FYS", "FYS", "FYS", "FYS", "FYS", "FYS", "FYS", "FYS", "FYS", 
"FYS", "FYS", "FYS", "FYS", "FYS", "FYS"), Student = c("789331", 
"789331", "789331", "789331", "789331", "805933", "805933", "805933", 
"805933", "805933", "826523", "826523", "826523", "826523", "826523", 
"832929", "832929", "832929", "832929", "832929", "838607", "838607", 
"838607", "838607", "838607", "841903", "841903", "841903", "841903", 
"841903", "843618", "843618", "843618", "843618", "843618", "852125", 
"852125", "852125", "852125", "852125", "876406", "876406", "876406", 
"876406", "876406", "879972", "879972", "879972", "879972", "879972", 
"885650", "885650", "885650", "885650", "885650", "888712", "888712", 
"888712", "888712", "888712", "903303", "903303", "903303", "903303", 
"903303", "796882", "796882", "796882", "796882", "796882", "827911", 
"827911", "827911", "827911", "827911", "830271", "830271", "830271", 
"830271", "830271", "831487", "831487", "831487", "831487", "831487", 
"834598", "834598", "834598", "834598", "834598", "836364", "836364", 
"836364", "836364", "836364", "839802", "839802", "839802", "839802", 
"839802", "855524", "855524", "855524", "855524", "855524", "873527", 
"873527", "873527", "873527", "873527", "885409", "885409", "885409", 
"885409", "885409", "894218", "894218", "894218", "894218", "894218", 
"928026", "928026", "928026", "928026", "928026", "932196", "932196", 
"932196", "932196", "932196", "955389", "955389", "955389", "955389", 
"955389", "956952", "956952", "956952", "956952", "956952", "957206", 
"957206", "957206", "957206", "957206", "957759", "957759", "957759", 
"957759", "957759", "959200", "959200", "959200", "959200", "959200", 
"962490", "962490", "962490", "962490", "962490", "968728", "968728", 
"968728", "968728", "968728", "969005", "969005", "969005", "969005", 
"969005", "971179", "971179", "971179", "971179", "971179", "976863", 
"976863", "976863", "976863", "976863", "981621", "981621", "981621", 
"981621", "981621", "952797", "952797", "952797", "952797", "952797", 
"965873", "965873", "965873", "965873", "965873", "967416", "967416", 
"967416", "967416", "967416", "975424", "975424", "975424", "975424", 
"975424"), Bin1 = c(4.25, 3.75, 4, 4, 3.5, 4.25, 4, 4, 4.25, 
4, 3.5, 4, 4, 5, 5, 4, 4, 4, 4, 3.25, 5, 5, 5, 5, 5, NA, NA, 
NA, NA, NA, 4.5, 4.25, 4.75, 4.5, 4.25, NA, NA, NA, NA, NA, 3.75, 
3.5, 4, 4.25, 4.25, NA, NA, NA, NA, NA, 3.75, 4, 4, 3.75, 5, 
NA, NA, NA, NA, NA, 2.5, 4.5, 4.5, 4.5, 4, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 4.75, 3.75, 3.75, 
5, 4, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 3.5, 3.75, 3.5, 
4, 3.25, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 4.25, 4.75, 
5, 4.75, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Bin2 = c(4, 
2.5, 2.5, 2.75, 3.25, 4, 3, 3, 3, 3, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, 5, 4.25, 4.25, 4.5, 4.5, NA, NA, NA, NA, NA, 
5, 4, 4, 3.75, 5, 3.5, 3.5, 3.75, 4, 4, 4, 3.25, 3, 2.75, 3.25, 
4, 4, 4.25, 4, 4, 4.5, 4.5, 4.25, 3.5, 4.25, 4.25, 4.25, 4.75, 
3.75, 4.5, NA, NA, NA, NA, NA, 3.25, 2.25, 2, 2.25, 3.5, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, 3, 4, 3, 3.75, 3.75, 3.5, 3.25, 3.25, 3.25, 3.75, 
4.25, 4.25, 4.75, 4.25, 4.25, NA, NA, NA, NA, NA, 4.25, 5, 4.75, 
3.5, 4.25, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 4.5, 4.5, 4, 
4, 3.75, 4, 3.5, 3.5, 3.5, 3.25, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, 2.5, 2.5, 2.75, 2.75, 2.5, NA, NA, NA, NA, NA, NA, 
4.75, 4, 4.25, 4.25, NA, NA, NA, NA, NA, 5, 4, 4.5, 3.75, 4.25, 
4.5, 3.75, 4, 4, 4, 3.5, 2.75, 2.75, 2.5, 2.75, 4.5, 4.5, 5, 
4.25, 4.5, NA, NA, NA, NA, NA), Bin3 = c(4.66666666666667, 3, 
3.33333333333333, 3.33333333333333, 3.66666666666667, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, 4.66666666666667, 3.66666666666667, 
3.66666666666667, 3.66666666666667, 4.33333333333333, NA, NA, 
NA, NA, NA, 3.66666666666667, 3.33333333333333, 3, 3, 4.33333333333333, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 5, 4.33333333333333, 
4.33333333333333, 3.66666666666667, 4, 3.33333333333333, 4.33333333333333, 
4.33333333333333, 4, 4, 3.66666666666667, 1.66666666666667, 2, 
2.33333333333333, 4.33333333333333, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, 5, 5, 4.33333333333333, 3.66666666666667, 5, NA, 
NA, NA, NA, NA, 3.33333333333333, 4, 3.33333333333333, 3.33333333333333, 
4, 2.66666666666667, 2.66666666666667, 3, 2.66666666666667, 3.33333333333333, 
4.66666666666667, 5, 4.33333333333333, 4.33333333333333, 4.66666666666667, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, 4.66666666666667, 4, 3.33333333333333, 4, 4.33333333333333, 
4.33333333333333, 3.66666666666667, 4.33333333333333, 4, 3.33333333333333, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1.33333333333333, 1.66666666666667, 
2.66666666666667, 2.33333333333333, 2.33333333333333, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA)), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -205L), .Names = c("Question", "Type", "Student", 
"Bin1", "Bin2", "Bin3"))
Bailey
  • 131
  • 2
  • 11
  • 1
    The `gather` function from the `tidyr` package (part of the `tidyverse` series of packages) converts data from "wide" to "long" format. `library(tidyverse); pulse.long = gather(pulse, timePeriod, rating, Bin1:Bin3)` – eipi10 Jun 21 '17 at 16:56
  • 1
    And `melt()` from `reshape2`can do this too. Like so: `df <- melt(df, c('Student', 'Question', 'Type'))` – Majo Jun 21 '17 at 17:01
  • @eipi10 Thank you!! If I wanted to add a weeks column: weeks<-c("Jan25-Feb8", "Feb15- March15", "Mar22-April5") How would I do that? – Bailey Jun 21 '17 at 17:06
  • There's not date column in your data that can be converted to weeks. If you had a data column, you could do something like [this SO answer](https://stackoverflow.com/a/27865836/496488). – eipi10 Jun 21 '17 at 17:17

0 Answers0