将变量从较长的数据集中转换为较宽的变量

时间:2019-03-30 14:07:40

标签: r dataframe dplyr

我基本上是在尝试将某些元素从较长的数据集中传输到较宽的数据集中。我知道诸如collect()和spread()之类的函数,但事实是该特定操作对我来说似乎很复杂,我什至不知道从哪里开始,所以让我解释一下。

我有一些学生的数据,这些学生应该在实习期间每月回答一次网络调查。每个月,他们都从一个封闭的列表(即Q1)中挑选他们执行的活动开始。然后,对于每个活动,他们说他们对此感到满意(第二季度),以及在进行活动时学到了多少(第三季度)。

结果数据存储在一个名为“每月”的数据框中,其中每个学生每个学生每月每个活动(变量“ MAIL”为1到12)(变量“ MAIL”)< / strong>。因此,对于每个学生,每月有12行,如果实习持续了6个月,则总共有72行。

此数据框的其他重要变量是“参与的”,如果学生本月回答了调查,则等于1,否则为0。当然还有Q1,Q2和Q3。学生无法对Q2和Q3回答“ 0”,因此,如果它们等于0,则表明该学生本月没有进行此活动(在这种情况下,参加该活动的人等于0),或者他本月没有回答调查(因此参加调查的人数为0)。

以下是实际中数据框的外观:

 Device                                    MAIL           Month Participated Vague                 Q1   TOPI activity_number Q2 Q3 learning_potential
1    Computer                          mail1@mail.com     March            1     1             10,1,2     84               1  6  7                  0
2    Computer                          mail2@mail.com     March            1     1                1.9     91               1  7  7                  0
3    Computer                          mail3@mail.com     March            1     1                  1     91               1  9 10                  0
4    Computer                          mail4@mail.com     March            1     1                2.1     72               1  8  8                  0
5    Computer                          mail5@mail.com     March            1     1              2,9,1    109               1  9  7                  0
6    Computer                          mail6@mail.com     March            1     1                1.2     56               1  9  8                  0
7    Computer                          mail7@mail.com     March            1     1                  1     40               1  5  8                  0
8       Phone                          mail8@mail.com     March            1     1                  1     36               1  5  4                  0

现在我必须将每个学生的Q2和Q3转移到每个学生只有一行的数据集中,两个数据集之间的共同标识符是“ MAIL”。因此,每两个月/每个活动我都需要一个变量,例如标记为“ Q2.march.1”,“ Q3.may.5”等。

除非我已经为使用R进行基本操作而苦苦挣扎,所以我发现整个过程有些麻烦,而且我对dplyr软件包的基本了解还不足以使我顺利通过。

所以如果有人可以给我看一些可以解决问题的代码,我将不胜感激!这仅仅是我的麻烦的开始,但是如果我得到实现该目的的代码,应该能够自己找出其余的部分。

非常感谢您抽出宝贵的时间阅读此消息。

祝你有美好的一天!

Lemexis

0 个答案:

没有答案