r - 如何从数据框中获取数组
问题描述
如何从满足条件的数据框中的列中获取数组?
例子:
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 函数)
解决方案
使用命名向量进行匹配
unname(setNames(x$price, x$pn)[y])
#[1] 1 2 6 1 1 2 2 1 6 6
推荐阅读
- ruby-on-rails - 如何停止在端口 3000 上运行 rails 服务器的 nohup 进程
- javascript - 使用 react-slider 我的标签没有对齐
- php - 浏览器显示其他语言的问号
- java - 过程编程中的抽象数据类型实现
- typescript - 如何在 VSCode 中查看大型打字稿类型?
- node.js - 调用在控制器中同步工作的函数 - 节点
- android - 构建 QML 应用程序的 APK 文件时出现链接错误
- python-3.x - 虽然训练 epoch 详细信息未更新并且未完成所有 eoch
- sql-server - 想要按 Group By 得到一对多关系表的结果
- java - Spring ResourceLoader 从 IDE 加载文件并在从 jar 加载时抛出异常