【发布时间】:2015-08-17 17:19:22
【问题描述】:
我想通过在数据框中拆分向量来创建新列。
我有这样一个数据框:
YEAR Variable1 Variable2
2009 000000 00000001
2010 000000 00000001
2011 000000 00000001
2009 000000 00000002
2010 000000 00000002
2009 000000 00000003
...
2009 100000 10000001
2010 100000 10000001
...
2009 100000 10000011
....
如您所见,变量 2 与变量 1 相关(变量 2=变量 1+最后两位数字:例如 01、02、03... 表示子类别)。我想将变量 2 拆分为子类别这么多的变量。结果应该是:
YEAR Variable1 Variable2 Variable3 Variable4 ...
2009 000000 00000001 0 0
2010 000000 00000001 0 0
2011 000000 00000001 0 0
2009 000000 0 00000002 0
2010 000000 0 00000002 0
2009 000000 0 0 00000003
...
2009 100000 10000001 0 0
2010 100000 10000001 0 0
...
2009 100000 0 0 0 ... 10000011
您将如何进行?我想我应该尝试在循环中重新编码 Variable2.. 我尝试通过操作字符串,但我没有解决问题..
【问题讨论】:
-
所以取决于你想要创建列并给出值的最后两个变量,所以总共会有大约 101 列是你想要的
-
例如,变量 1 中的第一个元素 (000000) 对应于变量 2 中的 3 个元素 (00000001, 00000002, 00000003),它们应该在三个不同的列中重写。每次最后两位数字在变量 2 中的一个元素是 01,该元素保留在变量 2 的列中。当变量 2 中元素的最后两位数字为 02 时,该元素转到变量 3(或者如果变量 3 不存在,则创建它)。这样,只有在必要时才会创建新变量。