具有多列 data.frames 的两个列表的条件匹配

2024-03-15

我有一个 data.frames 列表,每个 data.frames 中有多个列。每个 data.frame 都有相同的结构。 此外,我还有另一个包含多个 data.frames 的列表。

假设这是两个列表:

firstlist <- list(a=data.frame(AA=5:1,
                        BB=1:5),
           b=data.frame(AA=5:1,
                        BB=1:5),
           c=data.frame(AA=5:1,
                        BB=1:5))
secondlist <- list(a=data.frame(AA=1:10,
                        BB=c(0,0,1,0,0,1,1,0,0,0)),
           b=data.frame(AA=1:10,
                        BB=c(0,1,0,0,0,0,1,0,0,0)),
           c=data.frame(AA=1:10,
                        BB=c(1,0,0,0,0,1,1,0,0,0)))

现在我想将 CC 列添加到第一个列表中的所有 data.frames 中,并根据第二个列表中 BB 列中的值相应地填充它们。

问题是:我需要检查第一个列表中的 AA 或 BB 中的行是否包含第二个列表中 AA 的值,并使用第二个列表中 BB 的值填充第一个列表中的新列 CC。

上述示例数据的预期结果将是:

> firstlist
$a
     AA BB CC
  1  5  1  0
  2  4  2  0
  3  3  3  1
  4  2  4  0
  5  1  5  0

$b
    AA BB CC
  1  5  1  0
  2  4  2  1
  3  3  3  0
  4  2  4  1
  5  1  5  0

$c
    AA BB CC
  1  5  1  1
  2  4  2  0
  3  3  3  0
  4  2  4  0
  5  1  5  1

我需要使用 For 循环还是有其他方法?

更新: 看塞尔的解决方案 https://stackoverflow.com/a/17201471/2123407对于布尔数据和埃迪的解决方案 https://stackoverflow.com/a/17199228/2123407对于所有数据类型。

先感谢您!


如果 CC 确实是布尔值...

f <- function(a,b) cbind( a, CC=b$BB[ match( a$AA, b$AA ) ] |
                                b$BB[ match( a$BB, b$AA ) ]   )
mapply( f, firstlist, secondlist, SIMPLIFY=F )

直接,快速,并保留名字......

示例与 lapply 版本的基准测试::

Unit: milliseconds
          expr       min       lq   median       uq      max neval
   this mapply  1.726471 1.840671 1.870504 1.939473 13.88875   100
 Arun's lapply  2.930061 3.048110 3.134402 3.209786 14.61630   100
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有多列 data.frames 的两个列表的条件匹配 的相关文章

  • 熊猫滚动意味着更新

    考虑数据框 df pd DataFrame a None None None None 1 2 1 0 1 b 5 4 6 7 None None None None None gt gt a b 0 NaN 5 0 1 NaN 4 0 2
  • 在 R 中使用 gamlss::lms 选择百分位数曲线

    我正在使用 gamlss 包中的示例代码来绘制百分位数曲线 library gamlss data abdom lms y x data abdom n cyc 30 它正在绘制自己的一组百分位数曲线 如何选择只绘制第 10 50 和 90
  • 使用 Rcpp 得出斐波那契数列的意外结果

    我刚刚开始使用Rcpp很抱歉 如果我错过了一个简单的步骤或类似的东西 我已经尝试过这个 sourceCpp library Rcpp sourceCpp code include
  • 使用列表中的数据框:删除变量,添加新变量

    定义一个列表dats有两个数据框 df1 and df2 dats lt list df1 data frame a sample 1 3 b sample 11 13 df2 data frame a sample 1 3 b sampl
  • 网页抓取(R 语言?)

    我想获取中间栏中的公司名称this http www consumercomplaints in bysubcategory mobile service providers page 1 html页面 以蓝色粗体书写 以及登记投诉者的位置
  • 用于更改向量中元素顺序的闪亮小部件

    在很多网站上 您都有一个拖放界面来更改列表中元素的顺序 我正在寻找类似的东西闪亮 我希望用户能够拖放列表中的元素 通过更改顺序来更改优先级 现在我有一个滥用的解决方案selectizeInput 这是可行的 但当选择列表变得更大时 它很快就
  • R:邻接表到邻接矩阵

    Bonjour 我想将邻接列表 3 列 转换为邻接矩阵 在这个论坛中 我找到了多个有关如何将边列表转换为邻接矩阵的示例 我成功地为两列列表做到了这一点 我已经尝试了在网上可以找到的所有解决方案 但似乎我错过了一小步 我尝试过的 我的变量是用
  • 在多面图中用 N 注释 x 轴

    我正在尝试生成一些按治疗条件和访问次数细分的数字结果的箱线图 每个框中的观察次数都放在图下方 并且也标记了访问次数 这里有一些虚假数据可以用来说明 我举了两个我尝试过但不太有效的例子 library ggplot2 library plyr
  • Java 中的撤消和重做实现

    我想问一个关于Java中List的问题 很容易实现列表中元素的删除 添加和搜索 但是Java中如何实现列表的撤销和重做呢 谁可以帮我这个事 您可能希望实施一个Command Design Pattern为了这 一个不错的简化示例List可以
  • 尝试 .Split 时出现“列必须与键长度相同”错误

    下面的代码在 Python 3 8 10 中运行良好 但在 Python 3 10 中无法运行 知道可能是什么问题吗 import pandas as pd import requests url https coinmarketcap c
  • 在Python中将整数附加到列表的开头[重复]

    这个问题在这里已经有答案了 如何在列表的开头添加一个整数 1 2 3 42 1 2 3 gt gt gt x 42 gt gt gt xs 1 2 3 gt gt gt xs insert 0 x gt gt gt xs 42 1 2 3
  • 如何将函数应用于多个 pandas 数据框

    我有多个数据框 df1 df2 df3 dfn 它们具有相同类型的数据 但来自无法连接的不同描述符组 现在我需要手动将相同的函数应用于每个数据帧 如何将相同的函数应用于多个数据框 pipe https pandas pydata org p
  • R 中的 Mapdeck 包 - add_grid 似乎未渲染任何内容

    Problem The add gridR 中的函数mapdeck包很精彩 然而 遵循CRAN 文档 https cran r project org web packages mapdeck mapdeck pdf 我似乎无法获得任何数据
  • 在 Python 中使用 .split() 和 .join()

    我目前正在 Treehouse 中学习一些 Python 但我遇到了这个挑战 并且不知道我做错了什么 挑战分为三个部分 如下所示 包含提示和我编写的代码 我好像在第三部分犯了错误 Part 1 我想是时候吃点零食了 幸运的是 我有一串各种各
  • 如何使用修改后的索引来旋转 pandas 数据框?

    我有一个以下形式的时间序列数据框 rng pd date range 1 1 2013 periods 1000 freq 10min ts pd Series np random randn len rng index rng ts ts
  • 如何按字段对列表进行排序

    美好的一天 4 你们大家 我有一个对象列表 我的对象喜欢 Product iPhone Category SmartPhone Product HP Category PC Product HTC Category SmartPhone 我
  • dplyr 总结小计

    Excel 中数据透视表的一大优点是它们会自动提供小计 首先 我想知道 dplyr 中是否已经创建了任何可以实现此目的的东西 如果没有 实现它的最简单方法是什么 在下面的示例中 我按气缸和化油器的数量显示了平均排量 对于每组气缸 4 6 8
  • 如何在RcppParallel中调用用户定义的函数?

    受到文章的启发http gallery rcpp org articles parallel distance matrix http gallery rcpp org articles parallel distance matrix 我
  • 删除绘图轴值

    我只是想知道是否有一种方法可以消除 r 图中的轴值 分别是 x 轴或 y 轴 我知道axes false将摆脱整个轴 但我只想摆脱编号 删除 x 轴或 y 轴上的编号 plot 1 10 xaxt n plot 1 10 yaxt n 如果
  • 如何将 Pandas Dataframe 中的字符串转换为字符列表或数组?

    我有一个名为的数据框data 其中一列包含字符串 我想从字符串中提取字符 因为我的目标是对它们进行一次性编码并使之可用于分类 包含字符串的列存储在预测因子如下 predictors pd DataFrame data columns Seq

随机推荐

  • Visual Studio 2010无法启动程序.dll

    我的 Visual Studio 2010 有问题 当我单击 开始调试 按钮时 它就开始调试 似乎没有错误 我只是在其上创建一个 按钮 但它会显示Unable to start program c users xx dll 现在有人怎么解决
  • 使用“ref”键将“引用类型”作为参数传递给方法是否有意义? [复制]

    这个问题在这里已经有答案了 可能的重复 C 引用类型变量的 ref 有什么用 https stackoverflow com questions 961717 c what is the use of ref for reference t
  • 按顺序数字分组

    我有一些这样的数据 row id 1 1 2 36 3 37 4 38 5 50 6 51 我想查询它看起来像这样 row id group 1 1 1 2 36 2 3 37 2 4 38 2 5 50 3 6 51 3 这样我就可以按数
  • PHP 现在设置格式 YYYY-MM-DD

    我需要以这种格式将变量设置为当前日期 例如 2012 05 12 我知道这是 YYYY MM DD 吗 我试过了 date date yyyy mm dd strtotime now 但这并没有将日期保存到 mysql 因此它显示为 000
  • 如何将 OpenIdconnect 与 istio 集成?

    我想使用以下方式对最终用户进行身份验证JWT由 OpenId 连接提供者 如 keycloak 或 auth0 etc 提供istio服务网格 但我可能无法成功集成它 因为我对 JWT auth 和 istio 很陌生 有人可以提供正确的信
  • 防止“持久对象异常”

    我有一个非常基本的 JAX RS 服务 BookService下面的类 允许创建类型的实体Book 也见下文 POST有效负载 acquisitionDate 1418849700000 name Funny Title numberOfP
  • Haskell 重叠实例和类型函数

    我有以下类型类 它模拟了类似 SQL 的查询优化 class OptimizableQuery q where type Optimized q optimize q gt Optimized q instance Query q gt O
  • Asp.Net MVC:如何在网址中启用破折号?

    我想在我的网址中用破折号分隔单词 所以而不是 MyController MyAction 我想要 My Controller My Action 这可能吗 您可以像这样使用 ActionName 属性 ActionName My Actio
  • 显示日期格式[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想显示 2 March 2011
  • 如何在python中将文件保存到特定目录?

    目前 我正在使用此代码来保存下载的文件 但它将它们放在运行它的同一文件夹中 r requests get url with open file name pdf wb as f f write r content 如何将下载的文件保存到我选
  • 如何快速找到接口方法的实现? [复制]

    这个问题在这里已经有答案了 有没有一种快速方法可以找到接口的方法 属性 等的所有实现 而不是引用 这是一些示例代码 public class SomeClass IBaseClass public Int32 GetInt return 1
  • 在多语言操作系统上使用 Hyperic SIGAR 时出现“java.library.path 中没有 sigar-x86-winnt.dll”错误

    我在用金丝桃 SIGAR http www hyperic com products sigar库作为我的安装程序中的第三方库 我的安装程序将所有第三个 lib 文件解压到 TEMP user 文件夹中 在英语操作系统上一切都很好 但是当我
  • 使用 NLTK 和德语语料库从名词获取性别

    我正在尝试 NTLK 我的问题是图书馆是否可以检测德语名词的性别 我想接收此信息以确定文本是否是性别中立的 浏览此处获取更多信息 https en wikipedia org wiki Gender neutrality in langua
  • 使用 PHPExcel 循环工作表

    我正在使用 PHPExcel 库读取 Excel 文件并对其进行处理 我想循环浏览每个工作表 我检查了文档 我所能找到的只是更改活动工作表索引或仅加载指定的工作表 如何循环浏览所有工作表 感谢您的任何帮助 这是文档的循环示例 供参考
  • C++ 隐式转换运算符

    我正在尝试在 C 中找到一个很好的继承解决方案 我有一个矩形类和一个正方形类 Square 类不能公开继承 Rectangle 因为它不能完全满足矩形的要求 例如 矩形可以单独设置其宽度和高度 这对于正方形来说当然是不可能的 所以 我的困境
  • ORA-01797: 该运算符后面必须跟有 ANY 或 ALL 错误

    当我执行查询时 select from file log f where F DCP SRCE FILENM FK in ABC DEF and F TRANS DT gt to date 08 25 2017 mm dd yyyy and
  • WPF:特定输入文本框(用于电话号码等)

    我不知道这叫什么 但我确信它有一个名字 而且它已经被做过多次了 我有一些文本框 理想情况下只允许特定输入 例如电话号码 银行帐号等内容的框 例如 电话号码输入应采用以下格式 000 000 0000 但我也希望它接受不带区号的号码 例如 0
  • 如何在 Web 服务安装期间更改默认虚拟目录名称?

    我有一个使用 VS2008 创建的 C Web 服务 我有一个部署项目 它创建用于部署的 MSI 是否有某个设置可以更改安装过程中提示用户的默认虚拟目录 我不想更改网络服务的名称来执行此操作 但这不是右键单击安装项目的简单情况吗 selec
  • AWS 您的账户尚未准备好发布消息

    我刚刚使用我的控制台帐户注册了 AWS 论坛 都好 我第一次发帖 我得到 Your account is not ready for posting messages yet 我没有广告拦截器 所以我没有找到任何其他解决方案 任何帮助表示赞
  • 具有多列 data.frames 的两个列表的条件匹配

    我有一个 data frames 列表 每个 data frames 中有多个列 每个 data frame 都有相同的结构 此外 我还有另一个包含多个 data frames 的列表 假设这是两个列表 firstlist lt list