【发布时间】:2021-08-25 10:39:33
【问题描述】:
我有这个相对较大的长面板数据格式的数据框。
但是。我需要把这个变小。基本上它是 10 个调查折叠的结构,这意味着相同的问题(变量)被重复,因此给了我 10 个变量来测量相同的事情,但只有一年。
结构是这样的:
y <- data.frame(id = c(1, 1, 1, 2, 2, 2, 3, 3, 3),
year = c(2012, 2013, 2014, 2012, 2013, 2014, 2012, 2013, 2014),
pasta_2012 = c(1, 1, 1, 2, 2, 2, 3, 3, 3),
burger_2012 = c(1, 1, 1, 2, 2, 2, 3, 3, 3),
pizza_2012 = c(2, 2, 2, 1, 1, 1, 1, 1, 1),
pasta_2013 = c(1, 1, 1, 2, 2, 2, 3, 3, 3),
burger_2013 = c(3, 3, 3, 2, 2, 2, 1, 1, 1),
pizza_2013 = c(1, 1, 1, 2, 2, 2, 3, 3, 3),
pasta_2014 = c(1, 1, 1, 2, 2, 2, 3, 3, 3),
burger_2014 = c(3, 3, 3, 2, 2, 2, 1, 1, 1),
pizza_2014 = c(1, 1, 1, 2, 2, 2, 3, 3, 3))
> print(y)
id year pasta_2012 burger_2012 pizza_2012 pasta_2013 burger_2013 pizza_2013 pasta_2014 burger_2014 pizza_2014
1 1 2012 1 1 2 1 3 1 1 3 1
2 1 2013 1 1 2 1 3 1 1 3 1
3 1 2014 1 1 2 1 3 1 1 3 1
4 2 2012 2 2 1 2 2 2 2 2 2
5 2 2013 2 2 1 2 2 2 2 2 2
6 2 2014 2 2 1 2 2 2 2 2 2
7 3 2012 3 3 1 3 1 3 3 1 3
8 3 2013 3 3 1 3 1 3 3 1 3
9 3 2014 3 3 1 3 1 3 3 1 3
我想要的是添加三个变量,然后删除其他变量,这样我只有一个用于披萨、意大利面和汉堡,并且每年对应于它们在给定年份的值。像这样的:
id year pasta burger pizza
1 1 2012 1 1 2
2 1 2013 1 3 1
3 1 2014 1 3 1
4 2 2012 2 2 1
5 2 2013 2 2 2
6 2 2014 2 2 2
7 3 2012 3 3 1
8 3 2013 3 1 3
9 3 2014 3 1 3
有人知道如何解决这个问题吗? 我有超过 15 个变量*10 我需要在其中进行跟踪。
【问题讨论】:
标签: r dataframe structure panel