【发布时间】:2013-09-16 10:30:08
【问题描述】:
我有一个数据框,其中包含属于 n 个不同国家的 1000 个观察值。每个国家有超过 1 个观测值,每个国家的观测值数量不同。 我需要创建一个数字从 (1 到 n-1) 的列,每个数字对应一个不同的国家。也就是说,我正在创建一个虚拟变量,我不在乎哪个国家有哪个数字。我只需要创建这样的假人。 我的数据是这样的
Region x
1 be1 71615
4 be211 54288
5 be112 51158
6 it213 69856
8 it221 71412
9 uk222 79537
10 de101 94827
11 de10a 98273
12 dea10 92827
.. .. ..
每个国家/地区在区域列中都有自己的“代码”,例如 beXXXX 对应于比利时,ukXXX 对应于英国等。因此,我想我可以利用列 Region 中最初的 2 字母来创建我的假人。我从here 知道,命令grep() 可以完成这项工作,但我需要一个脚本,当区域的首字母发生变化时,它会自动从 1 切换到 n-1。
预期的输出应该是这样的
Region x Dummy
1 be1 71615 1
4 be211 54288 1
5 be112 51158 1
6 it213 69856 2
8 it221 71412 2
9 uk222 79537 3
10 de101 94827 4
11 de10a 98273 4
12 dea10 92827 4
.. .. .. ..
在这种情况下,1 对应于“be”(比利时),2 对应于“it”(意大利),依此类推,以用于我的样本中的“n”个国家/地区。
【问题讨论】:
-
请从您的示例输入中发布预期输出...
-
你是对的。我发布了预期的输出。我想强调的是,数据框是按地区(因此按国家)排序的,也就是说,我首先拥有所有 beXXX 观察结果,然后是 itXXXX 等等。也许可以利用这一点使事情变得更简单。
标签: r