这是一个可重复的例子,我解释了它为什么会这样做。
data = read.csv(text="Email foo.final bar.final
abc@foo.com 100 200
cde@foo.com 101 201
xyz@foo.com 102 202
zzz@foo.com 103 103", header=T, sep="" )
a = gather(data, key, Grade, -Email)
表示:除了"电子邮件",将所有列的值放入一个名为" Grade"的新列中。并添加一个名为" key"的新列。其中包含发生值的列标题。鉴于我们有4个观测值,每个观测值有两个变量,应该产生8个观测值。结果:
Email key Grade
1 abc@foo.com foo.final 100
2 cde@foo.com foo.final 101
3 xyz@foo.com foo.final 102
4 zzz@foo.com foo.final 103
5 abc@foo.com bar.final 200
6 cde@foo.com bar.final 201
7 xyz@foo.com bar.final 202
8 zzz@foo.com bar.final 103
b =聚集(数据,密钥,等级)
同样的意思,但现在我们包括电子邮件。现在我们有4个观测但有3个变量,所以我们应该得到12个观测值。结果:
key Grade
1 Email abc@foo.com
2 Email cde@foo.com
3 Email xyz@foo.com
4 Email zzz@foo.com
5 foo.final 100
6 foo.final 101
7 foo.final 102
8 foo.final 103
9 bar.final 200
10 bar.final 201
11 bar.final 202
12 bar.final 103
我并不感到惊讶。
答案 0 :(得分:0)
你可能需要做更像这样的事情
f2 <- f1 %>%
gather(key = Assignment, value = Grade, COURSE.final:EXAM.final) %>%
select(-email)