如何为每个标识符仅创建一行并将数据帧从长到宽?

时间:2019-08-22 18:20:46

标签: r tidyr

抱歉,我是R新手!

我有一个数据框,其中包含学生人数,所修课程和成绩。问题是所有课程都显示在同一列中,导致学生编号重复很多。我希望每个课程都是自己的列,然后将学生的成绩分配给该列,以便表中每个学生只有一个学生编号。

我尝试使用spread()函数,但收到错误消息:“行的重复标识符”

现在,数据集如下所示:

StudentNum<- c(1,1,2,2,3,3)
Course <- c('math', 'science', 'geo', 'math', 'physics', 'biology') 
grade <- c(75, 80, 90, 60, 50, 35)                 
Data <- data.frame(StudentNum, Course, grade)

但是我希望它看起来像这样:

StudentNum<- c(1,2,3)
math<- c(90, 39, NA)
science <- c(67, 33, 78)
biology <- c(55, 67, NA)
physics <- c(66, 99, 100)

DesiredData<-data.frame(StudentNum, math, science, biology, physics)

数字可能不匹配,因为我只是组成了这两个例子,但我希望它能说明我正在尝试做的事情。我想我缺少明显的东西,但是任何帮助将不胜感激!

0 个答案:

没有答案