微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 R 中的任何匹配子句上进行 LEFT JOIN?

如何解决如何在 R 中的任何匹配子句上进行 LEFT JOIN?

你能帮我解决这个问题吗:

我有一个数据框 (df1),其中包含网站 CMS 中发布的所有文章的索引。有一列用于当前 URL 和一列原始 URL,以防它们在发布后发生更改(列名称 Origin):

网址 起源 文章ID 作者 类别 成本
https://example.com/article1 https://example.com/article 001 作者姓名 政治 120 美元
https://example.com/article2 https://example.com/article2 002 作者姓名 金融 68 美元

接下来,我有一个巨大的数据框 (df2),其中包含一段时间内的网络分析导出。它有一个日期,只有 1 列用于显示 URL 和浏览量。

网页浏览日期 网址 浏览量
2019-01-01 https://example.com/article 224544
2019-01-01 https://example.com/article1 656565

我如何使用第一个数据帧加入这个但匹配 URL = URLOrigin = URL

所以最终的结果是这样的:

网页浏览日期 浏览量 文章ID 作者 类别
2019-01-01 881109 001 作者姓名 政治

881109 是将与同一文章相关的 224544656565 相加的结果

我想我正在寻找的是 sql 语法的等价物,例如:

LEFT JOIN ...`enter code here`
ON URL = URL
OR Origin = URL```

解决方法

您可以获得长格式的数据帧 1 (lineNumber:columnNumber),这样 df1Origin 都在同一列中,然后与第二个数据帧 (URL }).

df2

数据

library(dplyr)
library(tidyr)

df1 %>%
  pivot_longer(cols = c(URL,Origin),values_to = 'URL') %>%
  inner_join(df2,by = 'URL') %>%
  select(-name)

#  ArticleID Author     Category name   URL                          PageviewDate Pageviews
#      <int> <chr>      <chr>    <chr>  <chr>                        <chr>            <int>
#1         1 AuthorName Politics URL    https://example.com/article1 2019-01-01      656565
#2         1 AuthorName Politics Origin https://example.com/article  2019-01-01      224544

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。