根据行索引{R}更改变量值

时间:2016-02-05 15:54:02

标签: r

主要问题

我正在尝试扩展我的数据集以复制行,但系统地根据另一个值(year)的值更改每行中的一个变量(survey)。每轮调查都进行了多年,我希望数据能够反映这一点。

实施例

数据位于data.frame中,如下所示:

mydata:

     Region          Year          IV          DV         Survey
1    USA.Vermont     1999          1.469       6          1
2    USA.Vermont     2002          1.698       7          2
3    USA.Vermont     2005          1.556       6          3
4    USA.NewHamp     1999          0.518       2          1
5    USA.NewHamp     2002          0.698       3          2
6    USA.NewHamp     2005          0.431       1          3

我使用mydata.2 <- mydata[rep(1:nrow(mydata),each=3),]得到了这个:

mydata.2:

     Region          Year          IV          DV         Survey
1    USA.Vermont     1999          1.469       6          1
1.1  USA.Vermont     1999          1.469       6          1
1.2  USA.Vermont     1999          1.469       6          1
2    USA.Vermont     2002          1.698       7          2
2.1  USA.Vermont     2002          1.698       7          2
2.2  USA.Vermont     2002          1.698       7          2
3    USA.Vermont     2005          1.556       6          3
3.1  USA.Vermont     2005          1.556       6          3
3.2  USA.Vermont     2005          1.556       6          3
4    USA.NewHamp     1999          0.518       2          1
4.1  USA.NewHamp     1999          0.518       2          1
4.2  USA.NewHamp     1999          0.518       2          1
5    USA.NewHamp     2002          0.698       3          2
5.1  USA.NewHamp     2002          0.698       3          2
5.2  USA.NewHamp     2002          0.698       3          2
6    USA.NewHamp     2005          0.431       1          3
6.1  USA.NewHamp     2005          0.431       1          3
6.2  USA.NewHamp     2005          0.431       1          3

这让我很接近,但我希望这个(注意year变量的升序值):

mydata.2:

     Region          Year          IV          DV         Survey
1    USA.Vermont     1999          1.469       6          1
1.1  USA.Vermont     2000          1.469       6          1
1.2  USA.Vermont     2001          1.469       6          1
2    USA.Vermont     2002          1.698       7          2
2.1  USA.Vermont     2003          1.698       7          2
2.2  USA.Vermont     2004          1.698       7          2
3    USA.Vermont     2005          1.556       6          3
3.1  USA.Vermont     2006          1.556       6          3
3.2  USA.Vermont     2007          1.556       6          3
4    USA.NewHamp     1999          0.518       2          1
4.1  USA.NewHamp     2000          0.518       2          1
4.2  USA.NewHamp     2001          0.518       2          1
5    USA.NewHamp     2002          0.698       3          2
5.1  USA.NewHamp     2003          0.698       3          2
5.2  USA.NewHamp     2004          0.698       3          2
6    USA.NewHamp     2005          0.431       1          3
6.1  USA.NewHamp     2006          0.431       1          3
6.2  USA.NewHamp     2007          0.431       1          3

我该如何做到这一点?

如果需要更多信息,我很乐意添加它!

谢谢!

0 个答案:

没有答案