1

I want to reshape some data from long format to wide format, but what confuses me is how to rename the new columns according a specific column in the original long format.

Name <- c("Brian","Brian","Brian")
Age <- c(22,22,22)
Date <- c("2017.1.3","2017.1.3","2017.1.4")
School <- c("PH","En","Math")
Score <- c(100,99,98)
Course <- c("Epi751","Python","Statistics")

data <- data.frame(Name, Age, Date, School, Score, Course)
data

And the table looks like

 Name  Age  Date     School   Score Course
1 Brian 22  2017.1.3 PH       100   Epi751
2 Brian 22  2017.1.3 En       99    Python
3 Brian 22  2017.1.4 Math     98    Statistics

So how can I change to this way?

Name   Age Date_Epi751 School_Epi751 Score_Epi751 Date_Python School_Python Score_Python Date_Statistics School_Statistics Score_Statistics
Brian  22  2017.1.3    PH            100          2017.1.3     En                    99           2017.1.4         Math              98
zx8754
  • 52,746
  • 12
  • 114
  • 209

1 Answers1

0

Well, you can try reshape

> reshape(data, timevar="Course", idvar = "Name", direction="wide")
Name Age.Epi751 Date.Epi751 School.Epi751 Score.Epi751 Age.Python
1 Brian         22    2017.1.3            PH          100         22
Date.Python School.Python Score.Python Age.Statistics Date.Statistics
1    2017.1.3            En           99             22        2017.1.4
School.Statistics Score.Statistics
1              Math               98

Here is a reference on how to use reshape, HOW CAN I RESHAPE MY DATA IN R?

Jon
  • 2,373
  • 1
  • 26
  • 34