【发布时间】:2021-06-08 13:08:27
【问题描述】:
我正在研究 R 中的一个项目。我为一个机构实施的所有项目的表格创建了一个数据框。数据框表包括一个 Country 列,其中包含项目实施所在国家/地区的名称
看起来像这样,有超过 20,000 行
$ ProjectID <chr> "P163945", "P169561", "P171613", "P172627"…
$ Region <chr> "Africa West", "Africa East", "Africa West…
$ Country <chr> "Western Africa", "United Republic of Tanz…
$ PName <chr> "Investments towards Resilient Management …
我还有第二张表,它也有国家名称,但格式更短
$ Rank <int> 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, …
$ `Country/region` <chr> "Kenya", "Libya", "Dominica", "Ethiopia", "B…
$ `Real GDP growthrate (%)[1]` <chr> "1.9", "-66.7", "-8.8", "1.9", "3.8", "4.5",…
现在,我想重命名表 1 中的国家名称,使它们看起来与表 2 中的国家名称相同(即,表 1 中的坦桑尼亚联合共和国从第 2 列变为坦桑尼亚)。我尝试使用 countrycode 包,但看起来对我的情况没有帮助。我想避免手动重命名超过 100 个名称。一旦两列中的名称相同,我想使用 R 中的 SQL 包来设置主键和外键并将表中的数据连接在一起。我会很感激任何建议!
【问题讨论】:
-
特别是考虑到我们所拥有的(即只有一个完整的
Country),很难帮助您。我认为最好的方法是在一个新框架中生成一个框架映射Country到Country/region,这可能是 100 行长。是的,这可能需要以编程方式完成,从那里,您可以使用此映射框架merge您的 20,000 行框架并选择您需要的国家/地区列。 (关于合并/加入的参考:stackoverflow.com/q/1299871/3358272,stackoverflow.com/a/6188334/3358272.) -
如果这没有意义,我不会对我们在这里看到的样本做任何事情:请edit您的问题并为每一帧粘贴
dput(x)的输出,其中@987654331 @ 足够大,可以清楚地提供一个易于使用的框架,但不会大到完全破坏页面。两个框架之间的国家应该有足够的重叠,请不要提供两个没有共同点的样本。谢谢。
标签: r