R 中的部分合并

2023-12-19

在我最终达到-7之前r中数据帧之间的两两匹配 https://stackoverflow.com/questions/12123013/two-by-two-matching-between-dataframes-in-r是的,让我说我已经阅读了以下几页:

  • 如何将行从一个 data.frame 复制到另一个 [R] https://stackoverflow.com/questions/10013985/how-to-copy-row-from-one-data-frame-in-to-another-r
  • R 如何使用另一个 data.frame 中的值更新 data.frame 中的列 https://stackoverflow.com/questions/12427043/r-how-to-update-a-column-in-data-frame-using-values-from-another-data-frame
  • 使用一个 data.frame 更新另一个 data.frame https://stackoverflow.com/questions/7971513/using-one-data-frame-to-update-another?rq=1

其实最后一张确实和我想要的很像,但又不一样,因为我的专栏不一样

我有两个数据框,比方说:

> d <- data.frame(year=c(2004,2004,2006),month = c(1,5,3), height = c(1000,2000,3000) )
> d
  year month height
1 2004     1   1000
2 2004     5   2000
3 2006     3   3000

> e <- data.frame(year=c(2004),month=c(5), height = c(9999))
> e
  year month height
1 2004     5   9999

显然真实的数据比这个长。

我想将 e 中的值合并到 d 中

尝试原始合并:

> merge(d,e)
[1] year   month  height
<0 rows> (or 0-length row.names)

好的。所以添加“by”:

> merge(d,e,by=c("year","month"))
  year month height.x height.y
1 2004     5     2000     9999

好的,它进行了内部联接,并删除了 d 中的所有原始数据。所以尝试左外连接:

> merge(d,e,by=c("year","month"),all.x = T)
  year month height.x height.y
1 2004     1     1000       NA
2 2004     5     2000     9999
3 2006     3     3000       NA

它执行了连接,并且根据外连接定义它是正确的,但它没有执行我想要的操作,即根据 e 中的值更新 d 中的值。我真正想要的更像是 sql 更新:

for (year,month,height) in e:
    update d set d.height=e.height where d.year = e.year and d.month = e.month

即我想要的结果是:

> magic(d,e)
  year month height
1 2004     1   1000
2 2004     5   9999
3 2006     3   3000

当然,我也可以写一堆for循环,但我希望有一些矢量化的方法可以做到这一点?

编辑:我的示例只有一个关键列,但我真正的问题有两个。更新了示例以反映这一点。


您可以使用data.table

编辑注意到 e 和 d 都有一个由月份和年份定义的键

library(data.table)
DD <- as.data.table(d)
DE <- as.data.table(e)

setkey(DD,  year, month)
setkey(DE,  year, month)

DD[DE, height := i.height]

请注意,我的高度前缀为i.以确保它正在读取高度值i成分。

如果您阅读了 data.table 小插图的介绍,您将很快理解 rownames 和 data.table key 之间的关系!

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

R 中的部分合并 的相关文章

  • 使用变量在 r 中像 aes_string 一样选择轴

    我试图提供一个带有列名的变量来创建一个plotly图表 类似于ggplot2 aes string 不知怎的 我被困住了 plot ly iris x Sepal Length y Sepal Width works as expected
  • RStudio 在临时目录中从 Rmarkdown 创建 PDF 文件

    我使用 RStudio 和 Rmarkdown 来创建报告 由于某种原因 使用 Knit 按钮会导致它仅在某个临时目录中创建 从命令输出来看 似乎 pandoc 本身被指示这样做 我觉得这很奇怪 usr lib rstudio bin pa
  • rmarkdown 中的内部链接不起作用

    我使用 rmarkdown 来渲染 pdf 文档 现在我想在文本中添加内部链接 在帮助页面中降价 http rmarkdown rstudio com authoring pandoc markdown html links 它说内部链接定
  • Shiny 中的模态对话框:可以调整宽度但不能调整高度

    在我的 Shiny 应用程序中 我有几个来自闪亮BS 包的模式窗口 我可以像这样调整这些模式窗口的宽度 tags head tags style HTML modal lg width 1200px abs 1 background col
  • R:错误消息---包错误:“functionName”未从当前命名空间解析

    我正在使用一个一直运行到 R3 0 的软件包 问题如上所述 当我们调用在 R 2 15 2 中工作的函数时 从 R 3 0 开始我们得到一个错误 Error in C solarspectrum3 as double lon as doub
  • 尽管提供了群落矩阵,纯素食 DBRDA 物种得分为空

    我使用纯素社区生态包在 R 中执行了 基于距离的冗余分析 dbRDA 我想在 dbRDA 结果的排序图中显示 鱼类 营养群体对样本之间差异 营养级鱼类组合的丰度数据 的相对贡献 IE 将箭头和营养级组名称叠加到排序图上 其中箭头线的长度表示
  • R 中大型稀疏矩阵的聚类分析

    我有一个包含 250000 笔交易 行 和 2183 项 列 的交易数据集 我想将其转换为稀疏矩阵 然后对其进行分层聚类 我尝试了包 sparcl 但它似乎不适用于稀疏矩阵 关于如何解决这个问题有什么建议吗 或者我可以使用任何其他包对稀疏矩
  • 正则表达式挑选括号之间的一些文本[重复]

    这个问题在这里已经有答案了 可能的重复 提取 R 中所有括号内的信息 正则表达式 https stackoverflow com questions 8613237 extract info inside all parenthesis i
  • glm() 模型的交叉验证

    我正在尝试对我之前在 R 中构建的一些 glm 模型进行 10 倍交叉验证 我对cv glm 函数在boot包 尽管我已经阅读了很多帮助文件 当我提供以下公式时 library boot cv glm data glmfit K 10 这里
  • 解释 survreg 中的威布尔参数

    我正在尝试使用从 R 中的 survreg 估计的参数生成逆威布尔分布 我的意思是 对于给定的概率 这将是在 MS Excel 中实现的小型模拟模型中的随机数 返回使用我的参数预计出现故障 的时间 我理解逆威布尔分布的一般形式是 X b l
  • 如何在 R 地图库中绘制正确的颜色

    我正在尝试使用 R 地图库为特定国家绘制特定颜色 我可以填写颜色 但它们与各自的国家 地区没有正确关联 我想知道是否有人能知道为什么 我的数据框是 filld 有 3 列 第一列是国家名称 第二列只是一些数字数据 第三列是颜色 countr
  • 在 R 中修改传单弹出窗口

    我想修改 R 中传单弹出窗口的外观 帮助文件指出 in the popupOptions 函数需要 传递给底层 Javascript 对象构造函数的额外选项 In 这个例子 https rstudio github io leaflet p
  • 如何在 Shiny 中动态渲染的 textInput 添加样式元素

    你好堆栈溢出 在我最近提出的问题中 我已经解决了一些与动态渲染 UI 元素相关的主要问题 并在一些了不起的人的帮助下动态创建了观察者 参见此处 动态渲染的 UI 如何在第二次运行时删除旧的反应变量 https stackoverflow c
  • R 中带有边缘箱线图的直方图

    如何使直方图中的 X 轴与边缘箱线图匹配 data lt rnorm 1000 nf lt layout mat matrix c 1 2 2 1 byrow TRUE height c 1 3 layout show nf par mar
  • 在 Linux 下更改 RStudio 用户界面(不是图形等)中的字体大小

    This is not关于更改使用 RStudio 生成的图表中的字体大小的问题 我已经知道该怎么做了 我在配备 视网膜 显示屏的 MacBook Pro 上的 Linux 下使用 RStudio 我使用 KDE 作为我的窗口管理器 我可以
  • for 循环与 cor.test 在许多类别上

    我正在尝试在 R 中编写一个循环 它将循环遍历 3 个不同的物种 以计算两个连续变量 Redness 和 VarNormAbund 之间的相关性 我的循环正在运行 但 3 个物种中每一个的输出都是相同的 这让我认为循环卡在第一个物种上 co
  • 在 R Shiny 中显示/隐藏整个框元素

    我目前正在尝试找到一种方法来隐藏 显示 R Shiny 中的整个 box 元素 以及里面的所有内容 我想创建一个可能的按钮 它允许用户展开特定框 然后使用相同 甚至不同 的按钮隐藏它 我不想使用条件面板 因为我的应用程序非常大并且会产生一些
  • 在 R 中收集多组列[重复]

    这个问题在这里已经有答案了 我有一个宽数据框 需要将其收集或融化成一个高数据框 我遇到的问题是我有几组列需要保持关联 分组 我每个表单提交有 2 个用户 每个用户有 3 列数据 我想将这 6 列基本上以 3 组的形式堆叠起来 以便每个用户都
  • 替换rmarkdown/knitr/pdf中字幕的自动编号

    我正在使用 Rmarkdown 生成 PDF 文档 我想在其中手动定义图号 下面是一个块的示例 r chunk26 fig cap Fig 5 3 My figure caption plot 1 1 我使用特殊的编号来遵循文档的章节 问题
  • 使用插入符和方法 = gamLoess 进行训练时 R 崩溃

    当我运行下面的代码时 R 崩溃了 如果我在训练调用中注释掉tuneGrid行 就不会发生崩溃 我已经用另一个数据集尝试过此操作 但仍然使 R 崩溃 崩溃消息是 R 会话中止 R遇到致命错误 会话被终止 开始新会话 代码是 library s

随机推荐

  • IIS 8 和 Plesk web.config 以启用父路径和错误报告

    我正在将一个经典的 ASP 站点从共享托管 IIS 6 站点移动到使用 Plesk 的共享 IIS 8 主机 因此对 IIS 的唯一控制是通过 Plesk 中的一些设置或 web config Plesk 有启用 ASP 支持 我已经完成
  • Firebase 撤销下载网址上的令牌

    当我简单地在 firebase 控制台上 拍摄 图像时 它会自动为我创建一个下载网址 例如 我想让我的文件超级安全 如何删除此下载网址或撤销此令牌 Firebase 控制台在下载 URL 旁边提供了一个 撤销 选项 可用于此目的 在 文件位
  • 每次启动 Google Colab 时都需要安装所需的软件包吗?

    我正在将 Google colab 用于我的一个项目 我有一个完美运行笔记本所需的软件包列表 那么 我是否应该在每次启动 colab 时安装所有软件包 还是只安装一次就可以永远使用它们 您每次都需要安装它 来自FAQ https resea
  • 使用 popToViewController:animated 选择视图控制器的更好方法:

    考虑 self navigationController popToViewController self navigationController viewControllers objectAtIndex 1 animated YES
  • Pyodbc:插入时 SQLExecDirectW 错误

    由于某种原因 我使用以下方法将以下数组完全存储在 SQL 服务器中pyodbc以带有单引号的文本形式 萨钦 尤拉吉 我使用下面的代码插入上面的值 tes table SQLCURSOR execute INSERT INTO Test Ta
  • SDL2 如何在第二台显示器上定位窗口?

    我在用SDL SetWindowPosition定位我的窗口 我可以使用此功能将窗口定位到另一台显示器上吗 UPDATE Using SDL GetDisplayBounds在 Windows 10 中更改文本大小时 不会返回正确的显示器位
  • 特征可以为其继承的特征的方法提供默认实现吗?

    我有一个特点 有几种方法 一些 但不是所有 实现此特征的结构具有其中一种方法的所有相同实现 trait Blabla fn xy self x u32 y u32 gt u32 struct Ding impl Blabla for Din
  • 计算天空中的恒星位置,PyEphem

    我很难找到天空中星星的当前坐标 RA DEC 在网络中我只找到了这个教程 如何使用ephem库 http asimpleweblog wordpress com 2010 07 04 astrometry in python with py
  • 检查数组中值的简写

    有一个简短的方法可以做到这一点吗 if isset a key a key value echo equal more code else echo not equal more code 我需要测试数组上可以存在或不存在的大量值 我觉得这
  • Android NDK Eclipse 构建错误:无法重命名文件。原因:文件存在

    我正在使用 Eclipse 和本机代码构建 Android 项目 95 的情况下这工作正常 但时不时地它会给出以下错误 make libs armeabi libnative so 错误 1 make 删除文件 libs armeabi l
  • 使用 taskkill /F 返回代码 0 终止进程

    我需要终止一个 Windows 进程 java exe 我目前正在使用 taskkill exe F IM java exe 我需要使用 F 选项 因为这是一个关键进程 但这样我得到返回代码 1 而不是我需要返回代码 0 当我不使用 F 杀
  • 在 Visual Studio 中自动创建处理程序签名

    在 c asp net 4 0 VS2015 中工作 我创建了一个用户控件 它只是一个下拉列表 其中包含用户可以传递给它的几个其他属性 以及一个事件和委托 当下拉列表更改时 会触发 OnSelectedIndexChanged 然后检查事件
  • 我的 ASP.NET MVC 应用程序结构是否正确?

    我已经阅读了教程 特别是使用 Linq To Entities 的教程 并且了解基本概念 但是有些事情给我带来了问题 这些教程通常只涉及简单的模型和表单 仅使用基本的创建 更新和删除语句 我的有点复杂 我不确定我是否以正确的方式处理这个问题
  • 提取数据库对象的代码或脚本

    我需要从所有函数 过程 包 视图和表中提取代码 脚本 以便当我转向生产时我可以运行脚本来创建所有对象 在开发过程中 我没有对所有数据库对象进行脚本备份 提取代码或脚本的最佳方法是什么 任何建议或帮助都非常值得赞赏 Thanks 您确实使用版
  • 我可以将值为“未定义”的字符串转换为实际的未定义吗?

    当我从前端发出 GET 请求时 我将几个查询参数应用于 URL 如下所示 let response await axios get products searchQuery this searchQuery categoryId this
  • 调用结构体的方法

    这段代码工作正常 feedService postgres FeedService feeds err feedService GetAllRssFeeds 但这段代码给了我错误 feeds err postgres FeedService
  • Bootstrap:向导航栏添加按钮组?

    添加一个是否足够容易btn group to navbar in bootstrap btn很好 但不太好 当btn group div 在Bootstrap3中 您可以添加一个navbar btn类给你的按钮让它们垂直对齐 即使在btn
  • Android中可以使用哪些编程语言进行开发? [复制]

    这个问题在这里已经有答案了 可能的重复 我可以在 Android Dalvik 上使用哪些编程语言 https stackoverflow com questions 1994703 which programming languages
  • 计算百分比Javascript

    我有一个关于 JavaScript 逻辑的问题 我用什么来从文本字段获取两个输入的百分比 这是我的代码 var pPos pointspossible val var pEarned pointsgiven val var perc pEa
  • R 中的部分合并

    在我最终达到 7之前r中数据帧之间的两两匹配 https stackoverflow com questions 12123013 two by two matching between dataframes in r是的 让我说我已经阅读