如何根据与第三列的匹配将数据帧的一列中的值替换为另一列的值?

2024-03-25

当尝试根据第三列之间的匹配将具有四个变量的数据帧的值转换为具有两个变量的另一个数据帧中特定列的值时遇到问题。

在数据帧 df1 中,我有一个meta_#,它对应于与meta_# 在同一行中表示的iso_#。当数据帧中的meta_#匹配时,我希望相应的iso_#替换df2中的meta_#。

使用简化的数据集,例如:

当 df1$V1 与 df2$V1、df2$V2、df2$V3 和 df2$V4 中的任何值匹配时,我希望将 df2 中的值替换为同一行中的 df1$V2 值相应的比赛

df1

     V1      V2
1 meta_123 iso_321
2 meta_234 iso_987
3 meta_345 iso_876
4 meta_456 iso_765
5 meta_567 iso_543
6 meta_789 iso_423

df2

     V1        V2       V3      V4
1 meta_123 meta_234 meta_345 meta_456
2 meta_123 meta_234 meta_345 meta_567
3 meta_123 meta_345 meta_567 meta_789
4 meta_234 meta_567 meta_456 meta_789
etc...

然后我想要以下内容 df3

     V1      V2      V3     V4
1 iso_321 iso_987 iso_876 iso_765
2 iso_321 iso_987 iso_876 iso_543
3 iso_321 iso_876 iso_543 iso_423
4 iso_987 iso_543 iso_765 iso_423
etc...

我尝试过

df3 <- as.data.frame(ifelse(df2 %in% df1$V1, df1$V2))

但它只是按照原来的顺序返回 df1$V2 的列表。

谁能帮我?


您可以使用match :

df2[] <- df1$V2[match(as.matrix(df2), df1$V1)]
df2

#       V1      V2      V3      V4
#1 iso_321 iso_987 iso_876 iso_765
#2 iso_321 iso_987 iso_876 iso_543
#3 iso_321 iso_876 iso_543 iso_423
#4 iso_987 iso_543 iso_765 iso_423
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何根据与第三列的匹配将数据帧的一列中的值替换为另一列的值? 的相关文章

随机推荐

  • iPhone : 自定义标签栏,没有可怕的“更多”菜单

    所以我想构建一个具有超过 5 个项目并且可滚动的选项卡栏并找到本文 http www rumex it 2010 11 how to customise the tab bar uitabbar in an iphone applicati
  • “OpenCV”被视为未找到

    Linux 风格 Debian Crunch Bang 出现问题 尝试使用以下命令构建 cvblob 时 cd cvblob cmake Error CMake Error at cvBlob CMakeLists txt 20 find
  • NuGet 如何将属性应用于文件

    我正在创建 NuGet 包 我已经放入了两个文件content用户安装此软件包时将添加的文件夹 exe 和配置文件 另外我想更改这两个文件的 VS 项目属性 构建包时我需要做什么 当您说 应用属性更改 时 您是指文件系统属性 例如上次修改时
  • 通过 Xcode 发布时:下载的软件组件已损坏且无法使用

    在尝试通过 Xcode 发布 iOS 应用程序并通过大部分验证后 我收到以下错误 下载的软件组件已损坏且无法使用 https contentdelivery itunes apple com transporter repositories
  • 如何使用 Fabric.js 在画布上画一条线

    我正在使用 Fabric js 在画布上画一条线 这是我的代码 但我没有得到任何输出 Line click function alert Line canvas add new fabric Line 50 100 200 200 left
  • 使用 php 创建像 Twitter 或 Convore 这样的提及

    你好 我只是好奇 关于他们如何做事 我认为他们会做这样的事情 someone1 im stacking on stackoverflow RT someone2 hello guys what are you doing 在我以我的方式做之
  • 静态库 API 问题(std::string 与 char*)

    我以前没有使用过静态库 但现在我需要 设想 我正在 Unix 中编写一个控制台应用程序 我自由使用std string无处不在 因为这样做很容易 然而 我最近发现我必须在 Windows 中支持它 并且第三方应用程序需要 API 来连接我的
  • 使用 iText 检测动态 XFA

    我需要将预先填充的 PDF XFA 表单设置为只读 因为没有输入 例如文本 复选框 单选按钮等可以更改其值 对于常规 AcroForms PDF 和静态 XFA 表单 我可以通过调用来完成此操作setFormFlattening true
  • 为什么python的subprocess.call是这样实现的?

    subprocess模块 具有便捷的功能call 在2 6和3 1中都是这样实现的 def call popenargs kwargs return Popen popenargs kwargs wait 该函数的文档带有红色警告 内容如下
  • 多用户应用程序无需安装任何东西 - 允许并发用户写入的嵌入式数据库? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我需要创建一个应用程序 被多个用户同时使用 不需要any安装 有一个集中的数据存储 数据必须被存储inside公司网络 i 无权访问到公司内部数
  • 更新 UpdatePanel 内的标签

    我在更新面板中有一个标签和按钮 当我尝试从按钮单击上的标签获取值时 我从标签获取值 但是当我尝试将值设置为标签时 它不会发生 我检查了 JavaScript 错误 但没有任何错误 有人猜测可能是什么原因吗 我正在使用 dotnetnuke
  • 程序“[4432] iisexpress.exe”已退出,代码为-2147023895 (0x800703e9)

    我在使用 IIS Express 时遇到了非常令人沮丧的问题 当我开始调试时一切正常 但在几次请求后 IIS 挂起并崩溃 我的浏览器 Chrome 版本 37 0 2062 120 m 等待响应几秒钟 然后 IIS Express 停止运行
  • 在 webview android 中启用复制和粘贴

    是否可以从网络视图中选择文本然后进行复制和粘贴 有什么特殊的方法可以做到这一点吗 请帮助我 希望对你有帮助 public void selectAndCopyText try Method m WebView class getMethod
  • 如何在启用协程的改造界面中重试 API 调用

    我有一个用例 每当 API 调用中发生诸如互联网丢失或未知错误之类的一般错误时 需要显示带有重试按钮的错误 UI 当用户按下重试之前失败的 API 时 应该调用并恢复用户流程 迁移协程方法前的API接口 interface TodoServ
  • 如何更改单选按钮的文本

    我有一个单选按钮 需要根据用户输入动态更新 但正常情况下 val text and html 行不通的 如何使用 jQuery 或纯 JavaScript 更改单选按钮的文本 无线电输入没有文字 一切都是这样的
  • Go程序陷入死锁

    这是我的 Golang 程序 我正在使用它只是为了让我的概念正确 当我运行程序时 它陷入僵局 我不明白为什么 请有人指出出了什么问题吗 package main import fmt sync var wg sync WaitGroup f
  • 无法调用 DLL 导入条目、C# -> C++、EntryPointNotFoundException

    我正在尝试从 C 调用用 C 编写的自定义 DLL 中的函数 但是 我在代码分析期间收到警告 并在运行时收到错误 警告 CA1400 Microsoft 互操作性 正确 的声明 SafeNativeMethods SetHook 这样 它正
  • java.lang.NoClassDefFoundError Main(错误名称:com/leslie/quiz/Main)

    我有三节课 主要 核心和开始 这是主要的代码 package com leslie quiz public class Main public static void main String args com leslie quiz Sta
  • Python 中的动态/运行时方法创建(代码生成)

    我需要在运行时为方法生成代码 能够运行任意代码并拥有文档字符串非常重要 我想出了一个结合的解决方案exec and setattr 这是一个虚拟示例 class Viking object def init self code def dy
  • 如何根据与第三列的匹配将数据帧的一列中的值替换为另一列的值?

    当尝试根据第三列之间的匹配将具有四个变量的数据帧的值转换为具有两个变量的另一个数据帧中特定列的值时遇到问题 在数据帧 df1 中 我有一个meta 它对应于与meta 在同一行中表示的iso 当数据帧中的meta 匹配时 我希望相应的iso