我有数据如下:重塑长到宽大部分列具有多个值
IDnum zipcode City County State
10011 36006 Billingsley Autauga AL
10011 36022 Deatsville Autauga AL
10011 36051 Marbury Autauga AL
10011 36051 Prattville Autauga AL
10011 36066 Prattville Autauga AL
10011 36067 Verbena Autauga AL
10011 36091 Selma Autauga AL
10011 36703 Jones Autauga AL
10011 36749 Plantersville Autauga AL
10011 36758 Uriah Autauga AL
10011 36480 Atmore Autauga AL
10011 36502 Bon Secour Autauga AL
我有邮编的列表,它们包括城市,和它们存在于县/状态IDNUM =数字。县和州的价值相结合。列表是您现在看到的格式,我需要将它重新整形为宽/垂直到水平,其中IDnum变量变为唯一标识符,并且所有其他可能的值组合变为宽变量。
IDnum zip1 city1 county1 state1 zip2 city2 county2
10011 36006 Billingsley Autauga AL 36022 Deatsville Autauga
这只是数据集的示例,它包含了美国的每个zip文件,并包含更多变量。我已经看到类似于这个问题的其他问题和答案,但不是几乎每列都有多个值的地方。
SPSS和STATA中有命令可以这种方式重新塑造数据,在SPSS中我可以运行一个Restructuring/Cases to Vars命令,将我的初始数据集中的11个变量转换为1750年左右,一个县有290多个变量拉链,它复制大部分其他变量290+次。这将创造许多空白,但我需要将其重新塑造成一个非常长的水平文件。
我看了看reshape和reshape2,并挂上了'默认长度'错误消息。我确实得到了融合/预测来分类工作,但是这会创建一个变量,它是所有值的列表,而不是为每个值创建变量。
melted_dupes <- melt(zip_code_list_dupes, id.vars= c("IDnum"))
HRZ_dupes <- dcast(melted_dupes, IDnum ~ variable, fun.aggregate = list)
我试过tidyr和dplyr,但在语法上迷了路。有点惊讶,没有一个命令类似于其他包中的命令内置的数据,让我假设有,而我只是没有弄明白。
任何帮助表示赞赏。
谢谢! 我如何得到这个在数据框中显示?我使用的是RStudio,结果显示了我期望看到的varname,但全部都在控制台中,我查看了DataPane,它仍然显示43,包含12个变量的xxxx obs,而不是3,xxx obs 1750个变量。我错过了什么吗?如何让结果真正显示在数据框中,以便我可以查看它,而不仅仅是在控制台中? 我也在创建一个顺序计数变量,所以也非常感谢你。 –