R dplyr。过滤包含一列数值向量的数据框

2024-01-08

我有一个数据框,其中一列包含数字向量。我想根据涉及该列的条件过滤行。这是一个简化的示例。

df <- data.frame(id = LETTERS[1:3], name=c("Alice", "Bob", "Carol"))
mylist=list(c(1,2,3), c(4,5), c(1,3,4))  
df$numvecs <- mylist
df
#   id  name   numvecs
# 1  A  Alice  1, 2, 3
# 2  B  Bob    4, 5
# 3  C  Carol  1, 3, 4

我可以使用诸如 mapply 之类的东西,例如

mapply(function(x,y) x=="B" & 4 %in% y, df$id, df$numvecs)

对于第二行正确返回 TRUE,对于第 1 行和第 2 行正确返回 FALSE。

但是,我有理由想使用 dplyr 过滤器而不是 mapply,但我无法让 dplyr 过滤器在 numvecs 列上正确运行。以下代码不返回两行,而是不返回任何行。

filter(df, 4 %in% numvecs)
# [1] id      numvecs
#    <0 rows> (or 0-length row.names)

我在这里缺少什么?如何过滤涉及 numvecs 列的条件表达式?

理想情况下,我也想使用非标准评估 filter_ ,这样我就可以将过滤条件作为参数传递。任何帮助表示赞赏。谢谢。


我们仍然可以使用mapply with filter

filter(df, mapply(function(x,y) x == "B" & 4 %in% y, id, numvecs))
#  id name numvecs
#1  B  Bob    4, 5

Or use map from purrr

library(purrr)
filter(df, unlist(map(numvecs, ~4 %in% .x)))
#  id  name numvecs
#1  B   Bob    4, 5
#2  C Carol 1, 3, 4

或者我们也可以在链中执行此操作

df %>%
    .$numvecs %>% 
     map( ~ 4 %in% .x) %>%
     unlist %>% 
     df[.,]
#  id  name numvecs
#2  B   Bob    4, 5
#3  C Carol 1, 3, 4
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R dplyr。过滤包含一列数值向量的数据框 的相关文章

随机推荐

  • 如何在Python中获取JSON的字段特定值?

    我目前正在研究从 json 中提取字段 然后对其进行一些利用 因此我有面部参数 并且我想存储每个字段的值 我正在尝试从面部 JSON 中获取性别值 JSON如下 face attribute age range 5 value 24 gen
  • 如何实现有偏随机函数?

    我的问题是关于random choice功能 众所周知 当我们跑步时random choice apple banana 它将返回 apple or banana 在相同的概率下 如果我想返回有偏差的结果怎么办 例如 return appl
  • 如何在 GCC x86 内联汇编中使用地址常量

    GCC 工具链默认使用 AT T 汇编器语法 但可以通过以下方式获得对 Intel 语法的支持 intel syntax指示 此外 AT T 和 Intel 语法都可以在prefix and a noprefix版本 不同之处在于是否需要在
  • 如何使用YAHOO.util.Connect.asyncRequest并返回结果?

    我正在使用 YAHOO util Connect asyncRequest 从数据库获取数据 代码如下 function getCountArticle contentCurValue var handleSuccess function
  • Microsoft 构建引擎升级后无法发布 Angular 应用程序

    上周的某个时候 Microsoft DevOps 将构建引擎升级为 适用于 NET Core 的 Microsoft R 构建引擎版本 16 2 32702 c4012a063 TO 适用于 NET Core 的 Microsoft R 构
  • Heroku“at=错误代码=H10 desc=”应用程序崩溃“方法=GET路径=/favicon.ico”

    我有一个简单的 django 应用程序 可以在 localhost Linux Mint 上正常运行 但是当我将其部署到 Heroku 时 我看到一个页面出现以下错误 应用程序错误 应用程序中发生错误 无法提供您的页面 请稍后重试 如果您是
  • 如何通过Selenium摆脱信息栏“Chrome正在被自动化测试软件控制”

    已经搜索了一段时间并尝试了所有现有的解决方案 但似乎没有一个有效 我创建了一个 幻灯片放映 它将首先登录 然后在选项卡之间交替 所有这些都有效 但我无法摆脱 Chrome 正在被自动化测试软件控制 栏 有什么建议吗 Code from se
  • 如何使用MVVM自动隐藏WPF中的DataGrid列? [复制]

    这个问题在这里已经有答案了 使用 MVVM 无代码隐藏 我想在选择时隐藏我的 DataGrid 列 我有以下代码
  • 如何在 Xcode IDE 中启用垂直分割视图?

    我正在深入研究 iOS 开发 并且在多显示器设置上使用 Xcode 显然 我想利用多个监视器来查看和编辑源代码的多个窗格 但我很难弄清楚如何启用垂直拆分视图 在其他 IDE 中 这只是您在 窗口 菜单中单击的一个选项 如何在 Xcode 中
  • 在用 QtSpim 编译的 MIPS 中生成随机整数

    所以我看到了很多关于使用 MARS 在 MIPS 程序中生成随机整数的问题 系统调用 42没关系 问题是我需要为编译的程序生成一个随机整数QtSpim 它没有 42 或大于 17 的系统调用 我无法弄清楚从系统中获取类似随机值的东西 例如
  • 将值替换为该列的平均值 - 许多列

    我有一个包含超过 1000 列和 11000 行的 Excel 工作表 全部包含数字数据 数据中存在用 表示的缺失值 我想用它所在列的平均值替换所有 值 手动执行此操作需要很长时间 那么是否有一个公式可以实现此目的 非常感谢您的帮助 我可以
  • Apache Spark,向现有 DataFrame 添加“CASE WHEN ... ELSE ...”计算列

    我正在尝试使用 Scala API 将 CASE WHEN ELSE 计算列添加到现有的 DataFrame 中 起始数据框 color Red Green Blue 所需的数据帧 SQL 语法 CASE WHEN color Green
  • 在 flutter 中从父颜色生成自定义色调

    我需要找到一种更好的方法来从给定的自定义颜色生成阴影颜色以用于主题目的 到目前为止 我找到了一种通过降低给定颜色的不透明度来实现此目的的方法 如下所示 所以我可以强调颜色颜色和给定颜色的褪色颜色到此功能 import package flu
  • 如何从主脚本将导入的模块块传输到表面上?

    在我的主文件中 我有一个名为win 我像这样导入一个模块from draw import def draw image x y win blit image x y 这是一个来自draw 它不起作用 因为win没有定义 如何定义它 将目标表
  • ES6导出默认函数

    我可以为每个文件导出多个函数吗 似乎当我这样做时 第二个函数会覆盖第一个函数 例子 在my index js file export default function aFnt console log function a export d
  • Angular 4 - router.url 单元测试

    如何在 Angular 4 单元测试中模拟 router url 我在组件的 ngOninit 中使用 router url 但在我的测试中 router url 的值为 在 Angular v9 中Router url是只读 getter
  • 未找到 Django URL 模式

    我按照教程允许用户注册帐户 但似乎找不到 url 路径 当我设置名称时 它允许我访问 127 0 0 1 8000 accounts signup 但不能访问 127 0 0 1 8000 signup 我尝试将 urlpatterns 从
  • j_spring_security_check HTTP 状态 404(自定义登录)

    我正在使用 Spring 4 Hibernate 4 我检查了每一篇文章 但我无法找出问题所在 Web xml
  • iOS 上有什么好的自定义键盘实现教程吗?

    我需要为区域语言 泰米尔语 制作一个自定义键盘 如果用户按下自定义键盘键 我必须引入泰米尔字体 那可能吗 如果是的话 有可用的教程或资源吗 提前致谢 http cocoacontrols com platforms ios controls
  • R dplyr。过滤包含一列数值向量的数据框

    我有一个数据框 其中一列包含数字向量 我想根据涉及该列的条件过滤行 这是一个简化的示例 df lt data frame id LETTERS 1 3 name c Alice Bob Carol mylist list c 1 2 3 c