【发布时间】:2021-10-29 08:33:28
【问题描述】:
我有一个经济数据数据框,其中包括婴儿死亡率和世界地区。我提取了每个区域的异常值。
income infant region oil
Saudi.Arabia 1530 650.0 Asia yes
Afganistan 75 400.0 Asia no
Libya 3010 300.0 Africa yes
Zambia 310 259.0 Africa no
Guinea 79 216.0 Africa no
Burma 73 200.0 Asia no
我有 (1) 异常值的值和 (2) 每个值对应区域的名称。
> out$out # values
[1] 300.0 170.0 650.0 400.0 44.8 43.3
> out$names[out$group] # name of region corresponding to each outlier
[1] "Africa" "Americas" "Asia" "Asia" "Europe" "Europe"
我现在想为每个值对对应的行过滤数据框。例如。我想要 infant 值为 170 且 region 为美洲的行的行名。我不能使用列值在两个列表中的联合条件,因为还有其他行具有相同的值但不同的组(因为它们不是其组中的异常值)。
我知道我可以分两步完成此操作,但我想知道 R 中是否有更优雅的解决方案来执行此操作。
提前非常感谢!
【问题讨论】:
-
如果您以易于传输的格式提供数据,我们可以进一步提供帮助。首先想到的是将 out 转换为命名列表,然后您可以轻松地将值与区域匹配