字符串匹配不同大小的 data.frames

2024-02-26

我有两个不同大小的 data.frame,我正在寻找最有效的方法来将字符串从一个 data.frame 匹配到另一个 data.frame,并提取一些相关信息。

这是一个例子:

两个初始 data.frames,a 和 b,以及所需的结果:

a = data.frame(term = c("red", "salad", "rope", "ball", "tent", "plane", "gift", "meat"),
               age = c(30, 24, 52, 44, 73, 44, 33, 12),
               visits = c(5, 1, 3, 2, 8, 5, 19, 3))

b = data.frame(string = c("the red ball went over the fence",
                          "sorry to see that your tent fell down",
                          "the ball fell into the red salad",
                          "serious people eat peanuts on Sundays"))

desired_result = data.frame(string = b$string,
                            num_matches = c(2, 1, 3, 0),
                            avg_age = c(37, 73, 32.66667, NA),
                            avg_visits = c(3.5, 8, 2.66667, NA))

以下是更易读格式的 data.frames:

> a
   term age visits
1   red  30      5
2 salad  24      1
3  rope  52      3
4  ball  44      2
5  tent  73      8
6 plane  44      5
7  gift  33     19
8  meat  12      3

> b
                                 string
1      the red ball went over the fence
2 sorry to see that your tent fell down
3      the ball fell into the red salad
4 serious people eat peanuts on Sundays

> desired_result
                                 string num_matches  avg_age avg_visits
1      the red ball went over the fence           2 37.00000    3.50000
2 sorry to see that your tent fell down           1 73.00000    8.00000
3      the ball fell into the red salad           3 32.66667    2.66667
4 serious people eat peanuts on Sundays           0       NA         NA
  • num_matches 是“字符串”中“术语”的数量
  • avg_age 是“string”中找到的“term”的平均年龄
  • avg_visits 是“string”中找到的“term”的平均访问次数

关于如何有效地实施这一点有什么想法吗?

谢谢。


您可以使用基础 R 尝试此操作(不需要包):

res <- t(apply(b, 1, function(x) {
    l <- strsplit(x, " ")
    r <- unlist(lapply(unlist(l), function(y) which(a$term==y)))
    rbind(length(r), mean(a$age[r]), mean(a$visits[r]))

}))

res <- cbind(b, res)
                                 # string 1        2        3
# 1      the red ball went over the fence 2 37.00000 3.500000
# 2 sorry to see that your tent fell down 1 73.00000 8.000000
# 3      the ball fell into the red salad 3 32.66667 2.666667
# 4 serious people eat peanuts on Sundays 0      NaN      NaN
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

字符串匹配不同大小的 data.frames 的相关文章

  • 当测试集中不存在响应变量时,h2o 预测有时会失败

    当在不存在响应变量的测试集上进行预测时 如果在训练中对因子变量使用一种热编码 则 h2o 会以各种不同的方式失败 无论是在训练 GLM 时隐式指定还是在其他方法中显式指定时 R 3 4 0 和 h2o 3 12 0 1 中存在此错误 我们还
  • Objective-C 使用字符串池吗?

    我知道Java https stackoverflow com questions 3801343 what is string pool in java and C http msdn microsoft com en us librar
  • 使用 stargazer 分析包含时间序列的数据帧

    我有一个面板数据集共 10 个观测值和 3 个变量 观测值 30 的数量 10 行 国家 地区 2 列 迁移参数 相应年份的 1 列 可以这么说 我的数据框由 3 个年度数据框组成 我该如何申请观星者考虑到它是一个面板数据集 所以最大 N
  • 在 R Shiny 中,如何使用可排序 js 将其在列表中出现的顺序次数附加到每个列表元素?

    下面的可重现代码适用于将元素从一个面板拖动到另一个面板 并在 拖动到 面板中自动使用 HTML CSS 对拖入的每个元素进行排名顺序编号 但是 我现在尝试附加到每个 拖动到 列表元素的末尾 使用某种形式的paste0 我假设 该元素在 拖至
  • 对于多项式,获取其所有极值并通过突出显示所有单调部分来绘制它

    有人问我这个有趣的问题 我认为值得将其发布在这里 因为 Stack Overflow 上还没有任何相关线程 假设我有长度为的多项式系数n vector pc 其中次数多项式n 1对于变量x可以以其原始形式表示 pc 1 pc 2 x pc
  • R lubridate:当地语言的工作日

    如何获取本地语言的工作日和月份 My code library lubridate data lt c 10 02 2015 11 03 2015 data lubri lt dmy data wday data lubri label T
  • 使用starts_with() 将 NA 替换为 0

    我正在尝试替换我的一组特定列的 NA 值tibble 这些列都以相同的前缀开头 所以我想知道是否有一种简洁的方法来使用starts with 函数从dplyr包可以让我做到这一点 我已经看到了有关 SO 的其他几个问题 但是它们都需要使用特
  • warnings() 在函数内不起作用?如何解决这个问题?

    op lt options warn 0 although doesn t work for any value of warn assign last warning NULL envir baseenv thisDoesntWork l
  • 以编程方式触发 R 传单中的标记鼠标单击事件以获得闪亮效果

    我的问题与此相同 在 R 传单中触发标记鼠标单击事件以获得闪亮效果 https stackoverflow com questions 56962857 trigger marker mouse click event in r leafl
  • 如何将 R 数据框中的多个字符列合并为单个列

    我正在处理人口普查数据 需要将四个字符列合并为一列 Example LOGRECNO STATE COUNTY TRACT BLOCK 60 01 001 021100 1053 61 01 001 021100 1054 62 01 00
  • 具有动态变量数的公式

    假设有一些 data framefoo data frame想要找到目标列的回归Y由其他一些专栏 为此目的 通常使用一些公式和模型 例如 linear model lt lm Y FACTOR NAME 1 FACTOR NAME 2 fo
  • 将字符串转换为双精度 - VB

    VB中有没有一种有效的方法来检查字符串是否可以转换为双精度型 我目前正在尝试将字符串转换为双精度型 然后查看它是否引发异常 但这似乎减慢了我的申请速度 Try if number then format it current CDbl x
  • R:编写抛硬币的随机采样程序

    假设我们有以下情况 有一枚硬币 如果它正面朝上 那么下一次抛掷正面的概率是 0 6 如果是反面 那么下一次抛掷反面的概率也是 0 6 一个班有100名学生 每个学生随机抛掷硬币几次 Student n 的最后一次抛硬币不会影响 Studen
  • 在 Shiny 中叠加两个 ggplot

    我有一个非常大的数据集 我正在使用 ggplot 在 Shiny 上绘制它 我有一个与 x 轴上的值相关联的滑块 我想用它对选定的数据子集重新着色 并让其余数据保持原样 最简单的选择是重新创建整个绘图 但由于它是一个大型数据集 因此这是一个
  • 使用 readHTMLTable 从 https 网页读取表格

    我安装了 R 3 3 1 并使用 RStudio 0 99 903 我正在尝试从以下 URL 将表格读入 R https www fantasypros com nfl rankings consensus cheatsheets php
  • R:如何找到向量的模式[重复]

    这个问题在这里已经有答案了 下面是我的data frame我想知道每个内存类别 1 到 8 的模式是什么 gt dput d structure list MEMORY1 c 5 5 7 1 5 6 4 5 4 5 5 4 1 5 5 2
  • stat_function 从函数生成平线

    我有以下代码 library ggplot2 f lt function x if x gt 2 1 x 0 3 else 0 graph lt ggplot data frame x c 0 10 aes x graph lt graph
  • 将不同的 grViz 组合成一个图

    我想结合不同的DiagrammeR绘制成一个图形 生成的图如下例所示 library DiagrammeR pDia lt grViz digraph boxes and circles a graph statement graph ov
  • 美人鱼图:调整图表周围的空白

    我在用 Rstudio 编译的 Rmd 报告中使用了美人鱼图 在 HTML PDF 输出中 图表上方和下方有大量空白 请参见下面的示例 Header Text r library DiagrammeR mermaid graph TD cl
  • R闪亮:使用闪亮的JS从数据表中获取信息

    我想读出所有列名称以及它们在数据表中显示的顺序 由于不同的原因 我无法使用 stateSave 等选项 我对 JS 没有什么把握 但我确信用它可以完成 所以我需要你帮助我 我尝试过类似的代码片段 datatable data callbac

随机推荐

  • 手动设置Flutter验证错误

    验证表单并将请求从 flutter 发送到服务器后端后 我想将服务器中的任何潜在错误消息设置为以原始表单显示 最好与验证错误完全相同 例如 Widget build BuildContext context TextFormField on
  • 指针访问和引用访问哪个更快?

    在下面的示例代码中 我分配了 struct Chunk 的一些实例 然后 在 for 循环中 我迭代内存块并使用指针或引用访问不同的实例 并为它们分配一些随机数据 但是哪个 for 循环执行得最快呢 据我所知 我认为引用循环将是最快的 因为
  • 清理 URL 以防止 Rails 中的 XSS

    在 Rails 应用程序中 用户可以创建事件并发布 URL 以链接到外部事件站点 如何清理网址以防止 XSS 链接 提前致谢 XSS 示例 rails 的清理方法无法预防该问题 url javascript alert XSS a href
  • .Net core & SynchronizationContext & Thread.SetData

    据我所知 AspNetCore没有 https blog stephencleary com 2017 03 aspnetcore synchronization context html SynchronizationContext 重新
  • C++0x 中的特殊成员函数

    维基百科文章关于特殊成员函数 http en wikipedia org wiki Special member functions不包含任何对移动构造函数和移动赋值运算符的引用 我想更新该条目 但我不确定 0x 标准的内容 这两个函数的规
  • 将 JSON 数据加载到 Bootstrap 模式中

    我想加载一个 JSON 文件 该文件在 Bootstrap Modal 内创建一个列表 我将其设置为如果您单击某人的图片 则会弹出模式 li class project span3 a class thumbnail img src img
  • 为什么

    我的公司正在构建一个网站 我们遇到了一些 JavaScript 库无法替换某些内容的问题 我们决定将 HTML 放入 W3C 验证器 它告诉我们拥有 div 标签内的 div
  • 异步 - 等待 - 预期线程

    我有以下代码 static void Main string args Run1 Run2 Wait static async Task DoAsyncWork await Task Delay 2000 static async Task
  • H2 控制台在 H2 数据库中抛出错误 webAllowOthers

    我正在使用heroku来部署我的应用程序 当我尝试使用heroku加载我的h2控制台时 它抛出一个错误 H2 控制台 抱歉 此服务器上禁用远程连接 webAllowOthers 我在 application properties 文件中使用
  • 防止 Web 应用程序升级时浏览器缓存

    我有一个非常麻烦的问题 目前还没有找到好的解决方案 我允许浏览器缓存所有应用程序静态文件 JS CSS 和图像 以提高性能 问题是 当我进行升级时 用户仍然使用缓存中的旧版本 这经常会破坏应用程序 并且每次都需要清除缓存才能解决问题 是否有
  • Python:Pandas - 按组删除第一行

    我有以下大型数据框 df 看起来像这样 ID date PRICE 1 10001 19920103 14 500 2 10001 19920106 14 500 3 10001 19920107 14 500 4 10002 199201
  • Scala 括号语义

    将值附加到 MAP 时 为什么 Scala 需要额外的括号块才能使该语句起作用 不编译 vmap item getName item getString compiler output found String 但是 这确实可以编译 vma
  • 在不使用内容辅助输入整行时,Eclipse 在光标前插入分号

    这种行为让我抓狂 我输入以下内容 fileName append c get Calendar HOUR OF DAY 现在 当我输入内容时 会弹出内容辅助 我没有从内容辅助中选择 HOUR OF DAY 也没有按 Enter 键自动填写
  • 在C中计算欧几里德距离矩阵

    我想将用 MATLAB 编写的代码转换为 C matrix 1 2 3 4 5 6 7 8 10 dis zeros 9 for i 1 3 for j 1 3 dis i j sqrt sum abs matrix i matrix j
  • 尝试从网络位置加载程序集,这会导致程序集被沙箱化

    Net 4 0 出现错误 尝试从网络位置加载程序集 会导致程序集被沙箱化 应用设置
  • 带有 IAM 的 AWS MSK - 超时异常

    我们正在使用 Aws MSK 最近他们宣布了 AWS MSK IAM AUTH https github com aws aws msk iam auth https github com aws aws msk iam auth 当我尝试
  • css动画为什么会改变z-index? [复制]

    这个问题在这里已经有答案了 为什么动画会改变 z index 如果您查看 jsfiddle 您会看到红色图像位于顶部 但如果注释掉动画 则蓝色图像位于顶部 即使有动画 如何才能使蓝色图像始终位于顶部 jsfiddle http jsfidd
  • 删除字符串中重复字符(单词)的最佳方法?

    删除字符串中任何重复字符和由空格分隔的字符集的最佳方法是什么 我认为这个例子更好地解释了这一点 foo h k k h2 h 应该变成 foo h k h2 order not important 其他例子 foo s s k become
  • 在 Windows 事件查看器中诊断 CLR 错误

    我们有一个 NET 桌面应用程序在生产中崩溃了 我们如何诊断错误 我想知道发生的异常类型 错误消息和堆栈跟踪 因为我们的代码没有处理异常 所以我们收到了 此应用程序遇到问题 需要关闭 Windows 消息框 唯一的选择就是关闭 没有调试按钮
  • 字符串匹配不同大小的 data.frames

    我有两个不同大小的 data frame 我正在寻找最有效的方法来将字符串从一个 data frame 匹配到另一个 data frame 并提取一些相关信息 这是一个例子 两个初始 data frames a 和 b 以及所需的结果 a