在 R 中不相等的列名上合并大数据框

宠物小精灵

我在 R 中有两个数据框,其中一个很大(比如 160 个变量的 150000 个观察值)和一个较小的(5 个变量的 76 个观察值)。

大数据框中的变量之一是国家保存为字符串,而另一个变量由各个国家和特定特征组成。现在,我想通过为每个特征添加列并将观察结果与其相应国家/地区的特征联系起来,在我的新数据框中构建新变量。但是我有几个问题:

  1. 一个问题是,并非所有国家/地区都在较小的数据框中表示,我想从第二个未表示的国家/地区中删除第一帧中的观察结果。
  2. 第二个问题是,我似乎无法使用标准合并功能,因为第二个数据帧的格式如下:
Country Var1        Var2        Var3        Var4        Var5
NIC     -0.61252    -0.54723    -0.41597    -0.38825    -0.17819
RWA     -0.60603    -0.28969    -0.57998    -0.05933    -0.14199
GEO     -0.48543    -0.08132    0.56275     -0.25436    0.62782

虽然我的第一个数据框按以下方式格式化

CNTRY Var1 Var2 etc

似乎我需要自己硬编码一个函数?

彼得·史密特纳尔

如果我们称大的 df1 和小的 df2,你应该能够做一个满足你要求的连接。如果我正确理解您的问题,您需要一个包含多行(接近 150k)的数据框,每行都附加了国家/地区属性。但是您想删除没有相应国家/地区的 150k 行中的任何一行。

正如@aurelianoguedes 所建议的那样,您应该立即进行内部联接,这样可以消除大数据框中在小 df 中没有匹配项的任何行。

df.merged = dplyr::inner_join(df1, df2, by=c('Country' = 'CNTRY'))

带有过滤器 + left_join 的旧解决方案:

df.merged = df1 %>%
  filter(Country %in% df2$CNTRY) %>%
  left_join(df2, by=c('Country' = 'CNTRY'))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将数字划分为不相等的部分,以便平衡r中的向量

R中不相等数量的位置之间的距离(输入经度和纬度)

计算R df列中相等元素之间的不相等元素

如何用丢失的数据分割R中不相等的数据帧

R:基于多个条件(具有不相等的条件)合并

R:根据数据帧中的连续条目(两者之间的间距不相等)更改条目的值

R中具有不相等行的绑定矩阵

使用R将不相等的XML节点转换为数据帧

如何用R中的先前数据框名称重命名合并数据框的列名称?

用R中不相等的列重组凌乱的数据

R中不相等任务和进度条的最佳负载平衡

通过汇总R中的列来重构不相等存储桶中的值

在r中按组提取不相等的行数

提取R中数据框中2列不相等的行值

重塑R中的数据帧:从宽到长,但“可变”列的长度不相等

合并/追加具有不相等列的数据框,

将不相等数组的列转换为R中的单个值的列

如何在R中合并两个不相等大小的数据帧

在R中以不相等的尺寸逐行合并数据帧

将POSIX时间分配给R中的不相等间隔

通过两列名称合并行数不相等的两个数据框

根据R中的列名称合并数据框

合并行不相等且列名不匹配的数据框 R

R根据特定的列值乘以不相等的数据帧

当变量的长度不相等时,基数 R 中的分组和反向条形图

数据框 R 中的观察数和变量数不相等

使用向量化组合 R 中的向量,其中值仅在它们不相等时求和

R将大数据框中的列合并到汇总数据框中

R:外部合并具有不相等列的两个数据框