首页 > 解决方案 > 如何从数据框中获取数组

问题描述

如何从满足条件的数据框中的列中获取数组?

例子:

x=data.frame(pn=c('a','b','c','d','e','f'),price=c(1,2,3,4,5,6))

然后,对于给定的 pn 列表(可以具有任意大小的数组),如下所示:

y=c('a','b','f','a','a','b','b','a','f','f')

我想要一系列关于 y 的价格。预期的输出是:

1,2,6,1,1,2,2,1,6,6

(没有循环或 lambda 函数)

标签: rarraysdataframe

解决方案


使用命名向量进行匹配

unname(setNames(x$price, x$pn)[y])
#[1] 1 2 6 1 1 2 2 1 6 6

推荐阅读