使用 dplyr 填充缺失值(通过连接?)

2023-12-03

我有一个数据框(df1),其中缺少一些值(城市、州):

SiteID    City          StateBasedIn   Lat  Lon   Var1 Var2
4227      Richmond      KY            -39  -113   6    0
4987      Nashville     TN            -33  -97    7    0
4000      Newark        NJ            -39  -95    8    0
4925      Miami         FL            -40  -99    0    0
4437      Montgomery    AL            -32  -117   4    1
4053      Jonesboro     AR            -30  -98    8    1

df1 <- structure(list(SiteID = c(4227L, 4987L, 4000L, 4925L, 4437L, 
4053L, 4482L, 4037L, 4020L, 1787L, 2805L, 3025L, 3027L, 3028L, 
3029L, 3030L, 3031L, 3033L), City = structure(c(10L, 7L, 8L, 
5L, 6L, 4L, 2L, 9L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("", 
"Arcata", "Jackson", "Jonesboro", "Miami", "Montgomery", "Nashville", 
"Newark", "Portland", "Richmond"), class = "factor"), StateBasedIn = structure(c(6L, 
10L, 8L, 5L, 2L, 3L, 4L, 9L, 7L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L), .Label = c("", "AL", "AR", "CA", "FL", "KY", "MS", "NJ", 
"OR", "TN"), class = "factor"), Lat = c(-39L, -33L, -39L, -40L, 
-32L, -30L, -38L, -31L, -35L, -38L, -30L, -39L, -38L, -32L, -39L, 
-31L, -38L, -34L), Lon = c(-113L, -97L, -95L, -99L, -117L, -98L, 
-98L, -95L, -112L, -120L, -114L, -81L, -117L, -90L, -109L, -115L, 
-81L, -104L), Var1 = c(6L, 7L, 8L, 0L, 4L, 8L, 1L, 8L, 0L, 3L, 
3L, 7L, 4L, 8L, 0L, 8L, 1L, 3L), Var2 = c(0L, 0L, 0L, 0L, 1L, 
1L, 1L, 1L, 1L, 0L, 1L, 1L, 0L, 0L, 1L, 0L, 1L, 0L)), .Names = c("SiteID", 
"City", "StateBasedIn", "Lat", "Lon", "Var1", "Var2"), class = "data.frame", row.names = c(NA, 
-18L))

我想通过与另一个数据框 (df2) 合并来填充这些值,该数据框具有 3 个相同的列,但不是 df1 中的所有列:

SiteID       City         StateBasedIn
1787         Lusby        MD
2805         Springdale   AR
3025         Saukville    WI
3027         Saukville    WI
3028         Saukville    WI
3029         Saukville    WI

df2 <- structure(list(SiteID = c(1787L, 2805L, 3025L, 3027L, 3028L, 
3029L, 3030L, 3031L, 3033L), City = structure(c("Lusby", "Springdale", 
"Saukville", "Saukville", "Saukville", "Saukville", "Saukville", 
"Mequon", "Mequon"), .Dim = c(9L, 1L)), StateBasedIn = structure(c("MD", 
"AR", "WI", "WI", "WI", "WI", "WI", "WI", "WI"), .Dim = c(9L, 
1L))), row.names = c(NA, -9L), class = "data.frame", .Names = c("SiteID", 
"City", "StateBasedIn"))

所以基本上我会保留 df1 中的所有信息,并输入 df2 中可用的缺失值。由于我还不太熟悉所有 dplyr 选项,因此我尝试了不同的“加入”选项,但没有成功。我还尝试在基础包中使用“合并”,但仍然没有成功。还有另一种方法可以做到这一点(最好使用 dplyr)?


您可以使用full_join from dplyr, 随着replace and coalesce整理出一个非常简洁的解决方案。

library(dplyr)
library(purrr) 

# Cleaning from r2evans (if you want to keep it to dplyr just use r2evans lapply method

df1 <- mutate_if(df1, is.factor, as.character)
df2 <- dmap(df2, as.vector)

full_join(df1, df2, by = "SiteID") %>% 
  mutate_at(vars(matches("City","StateBased")), funs(replace(., . == "", NA))) %>% 
  mutate(City = coalesce(City.y, City.x),
         StateBasedIn = coalesce(StateBasedIn.y, StateBasedIn.x)) %>% 
  select(-contains("."))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 dplyr 填充缺失值(通过连接?) 的相关文章

  • 在 for 循环中绘制的多个 ggplot2 绘图的网格

    作为一个新的 ggplot2 用户 我对可能性的数量感到有点迷失 并且很难在网上找到我认为简单问题的简单答案 我想在同一张纸上显示 ggplot2 的多个图 但知道这些图来自 for 循环 以下示例无法编译 仅用于说明 for i in c
  • profvis() 何时以及为何显示“源不可用”?

    我经常分析 R 代码 并大量使用 profvis 对于某些函数 浏览器窗口的上半部分会显示源代码 有时则不会 我不知道什么时候会出现这种情况 对我来说这似乎是随机的 有谁知道 profvis 何时以及为什么无法在顶部窗口中显示代码 发生这种
  • Quarto/Rmarkdown 中的美人鱼图:狭窄且模糊

    我正在尝试生成 pdf 格式的四开文档 稍后会生成 word 格式 我遇到了美人鱼图的问题 请在下面找到一个示例 qmd 文件来说明该问题 所以首先它应该支持 mermaid 标签 但当我这样做时 我无法在 rstudio 中 运行 单元
  • 有效地将环境从内部功能转移到全局环境

    我有一个在其中创建环境的函数 我希望将该环境分配给全局环境 目前我通过将环境分配给来做到这一点globalenv 作为最后一步 如下 funfun lt function inc 1 dataEnv lt new env dataEnv d
  • glm() 模型的交叉验证

    我正在尝试对我之前在 R 中构建的一些 glm 模型进行 10 倍交叉验证 我对cv glm 函数在boot包 尽管我已经阅读了很多帮助文件 当我提供以下公式时 library boot cv glm data glmfit K 10 这里
  • udunits2 R 安装:找不到 udunits2.h

    我正在尝试在 R 中安装 udunits2 以满足对ggforce包裹 但是 安装程序在检查 udunits2 时始终失败 我已经尝试过中的说明this https stackoverflow com questions 47059517
  • readRDS() 加载额外的包

    什么情况下会出现readRDS R 中的函数尝试加载包 命名空间 我很惊讶地在新的 R 会话中看到以下内容 gt loadedNamespaces 1 base datasets graphics grDevices methods sta
  • Dplyr 多重滞后整齐评估?

    我试图在 dplyr 中使用尽可能少的代码来实现多个滞后 同时坚持整洁的评估 以下标准评估 SE 代码有效 if require dplyr install packages dplyr library dplyr a as tibble
  • 如何判断某个软件包是否已经安装?

    当我安装 yaml 包时 如果之前已经安装过 RStudio 则会弹出一条烦人的错误消息 如何判断该软件包是否已安装 以便我可以在代码中决定是否安装该软件包 该消息位于弹出窗口中 内容如下 此安装将更新的一个或多个软件包 当前已加载 在更新
  • 通过 RSelenium 单击按钮

    我正在尝试使用 Rselarium 和 Rvest 来抓取 REI 的评论 吊床 我想点击底部的按钮 x 次 这样我就可以抓取所有评论 我有点失落 这是我到目前为止所拥有的 如果您也知道如何在取景器中预览您正在做的事情 而不是屏幕打印 那就
  • 如何在 R 地图库中绘制正确的颜色

    我正在尝试使用 R 地图库为特定国家绘制特定颜色 我可以填写颜色 但它们与各自的国家 地区没有正确关联 我想知道是否有人能知道为什么 我的数据框是 filld 有 3 列 第一列是国家名称 第二列只是一些数字数据 第三列是颜色 countr
  • 使用 SparkR 1.5 从 RStudio 中的 hdfs 读取大文件(纯文本、xml、json、csv)的选项

    我是 Spark 新手 想知道除了下面的选项之外是否还有其他选项可以使用 SparkR 从 RStudio 读取存储在 hdfs 中的数据 或者我是否正确使用它们 数据可以是任何类型 纯文本 csv json xml 或任何包含关系表的数据
  • R:在函数中包含循环?

    以下代码可用于创建一个 data frame 其中 Kendall Tau 和 Spearman 相关结果彼此相邻 data mtcars mtcars correlation lt function x y df1 cor data fr
  • 在 R 中修改传单弹出窗口

    我想修改 R 中传单弹出窗口的外观 帮助文件指出 in the popupOptions 函数需要 传递给底层 Javascript 对象构造函数的额外选项 In 这个例子 https rstudio github io leaflet p
  • 为什么我在 ddply 中看到“错误:length(rows) == 1 is not TRUE”?

    我有一个数据框 比如工资单 例如 payroll lt read table text AgencyName Rate PayBasis Status NumRate HousingAuthority 26 843 00 Annual Fu
  • 如何在 Shiny 中动态渲染的 textInput 添加样式元素

    你好堆栈溢出 在我最近提出的问题中 我已经解决了一些与动态渲染 UI 元素相关的主要问题 并在一些了不起的人的帮助下动态创建了观察者 参见此处 动态渲染的 UI 如何在第二次运行时删除旧的反应变量 https stackoverflow c
  • 分割单个 SpatialPolygons 对象的多边形部分

    在 R 中 我有一个SpatialPolygons包含数百个多边形的对象 即多个多边形 我想分割这个SpatialPolygons对象放入列表中Polygons 即孔应保持连接到父多边形 知道如何做到这一点吗 EDITED 使用以下提供的示
  • 如何在 R 中查找平衡面板数据(又名,如何查找面板中的哪些条目在给定窗口内完整)

    我有来自 Compustat 的大量数据 我向其中添加了一些手工收集的数据 认真地从一堆旧书中手工收集 但我不想手工收集整个面板 只想随机选择一个子集 为了找到更大的集合 我从中随机选择 我想从 Compustat 的平衡面板开始 我看到p
  • 通过 RCpp 返回 NA

    新手 RCpp 问题在这里 How can I make a NumericVector returnNA到R 例如 假设我有一个 RCpp 代码 它分配NA到向量的第一个元素 RCpp export NumericVector myFun
  • 替换rmarkdown/knitr/pdf中字幕的自动编号

    我正在使用 Rmarkdown 生成 PDF 文档 我想在其中手动定义图号 下面是一个块的示例 r chunk26 fig cap Fig 5 3 My figure caption plot 1 1 我使用特殊的编号来遵循文档的章节 问题

随机推荐

  • 消失的对象 - Three.js CanvasRenderer

    我很困惑 我不明白为什么我的对象会随着画布渲染器消失 虽然它与 webGL 渲染器完全按照预期工作 但我需要在移动设备上显示它 因此无法访问 webGL 渲染器 我尝试过 overdraw true 但这似乎并没有使丢失的对象消失 http
  • 动画切换按钮

    我已经创建了动画切换 如果android checked true 即 它可以从 1 9 播放 但是如果android checked false 它卡在了drawable 10 但应该从10 20开始播放 从那时起它就完美了 但是当应用程
  • Swift 通用数组“不相同”错误

    我只是在浏览一些 Swift 的内容 这些内容在 Beta3 中显然已经过时了 func exchange
  • EF4.2 额外左外连接到同一个表

    我知道已经有一些关于此的问题 大多数与已解决的旧问题或多个表有关 我看到的任何其他 左外连接 问题都没有涵盖这个问题 我得到了INNER JOIN and LEFT OUTER JOIN在同一个查询中访问同一个表 表格概要 Users id
  • Android:捕获活动的返回

    我有一个关于开展新活动的问题 归根结底就是这样 我的视图上有 3 个选项卡 A contains gMap activity B camera activity C some random text fields 要求是应用程序以纵向模式运
  • 是否可以在 android gradle 中将 git 存储库声明为依赖项?

    我想使用 mavencentral 的库的主版本 是否可以在 android gradle 中将 git 存储库声明为依赖项 对我来说最好的方法是 https jitpack io 步骤 1 将 JitPack 存储库添加到存储库末尾的 b
  • OmniSharp.MSBuild.ProjectManager 无法在 Linux 上加载项目

    我正在我的 Manjaro Linux 笔记本上学习 C 我尝试安装 ms vscode csharp 扩展 但是在打开任何 NET Core 项目时 我收到以下错误消息 某些项目加载时遇到问题 请查看输出以了解更多信息 信息 我尝试设置
  • setuptools:包数据文件夹位置

    我使用 setuptools 来分发我的 python 包 现在我需要分发额外的数据文件 根据我从 setuptools 文档中收集的信息 我需要将数据文件放在包目录中 但是 我宁愿将数据文件放在根目录的子目录中 我想避免的 root sr
  • 如何防止点击页面按钮后 Django 表单被重置

    我有一个 Django 表单 它接受用户的输入值 然后使用这些值对表进行查询ResourceBase 最终返回过滤结果的列表 由于结果可能是一个很长的列表 我添加了带有 上一页 和 下一页 按钮的分页功能 我的问题是 当我单击 上一个 或
  • 使用 gsub 从 R 中的数据集中删除主题标签、超链接和 Twitter 句柄

    我已经搜索过 但一无所获 可能是因为我对 R 非常陌生 不理解 并且被吓倒 模式匹配和正则表达式替换的逻辑 语法是如何工作的 所以我希望有人可以帮助我使用 R 中删除主题标签所需的特定代码 例如 trump 删除超链接 例如pic twit
  • 如何执行浏览器内对比度拉伸/标准化?

    我的网页上有 jpeg 我想在没有浏览器插件的情况下对这些图像执行客户端均衡 对比度拉伸 我也接受直方图均衡的解决方案 我目前使用两个 CSS 过滤器组合的较差近似值 webkit filter contrast brightness 我希
  • 文件下载到 Cordova 中的 Android 下载文件夹

    这是代码 function downloadCL document addEventListener deviceready init false The directory to store data var store var asse
  • 如何使实体框架数据上下文只读

    我需要向第三方插件公开实体框架数据上下文 目的是允许这些插件仅获取数据 而不是让它们发出插入 更新或删除或任何其他数据库修改命令 因此 我怎样才能使数据上下文或实体只读 除了与只读用户连接之外 您还可以对 DbContext 执行一些其他操
  • 如何在不暂停脚本的情况下监听 STDIN 输入?

    我有一个while循环持续侦听传入连接并将其输出到控制台 我希望能够通过控制台发出命令而不影响输出 我试过了 Thread new do while true input gets chomp puts So I herd u sed in
  • 如何在 Swift 中的路径中查找没有路径扩展的文件的文件 UTI

    我一直在尝试转换我从中得到的代码example 在 Objective c 中 没有运气 String path contains the file path Get the UTI from the file s extension CF
  • Java中的按位右移运算符

    在 Java 中 4 gt gt 2 给出 1 但 5 gt gt 2 给出 2 有人能解释一下为什么吗 这是示例代码 byte r 5 r gt gt 2 System out println r 同样在这种情况下 gt gt 和 gt
  • Facebook Connect 在模拟器/设备上的工作方式不同,但在 Google Play 上则不然

    我的应用程序中出现奇怪的 Facebook 连接行为 如果我在模拟器中使用它 则对 facebook request 用于检索用户数据 和 facebook dialog 用于在墙上发布 的调用是在 facebook authorize g
  • 如何从 vNext 构建代理上的自定义脚本加载 PowerShell 模块?

    我正在使用标准 TFS vNext 构建步骤来执行 PowerShell 脚本 在脚本中 我尝试利用标准 TFS 代理模块中的一些功能 此处列出 http blog majcica com 2015 11 14 available modu
  • 从 TWIG 模板访问会话

    我在网上搜索了很多如何访问全局 SESSION从 TWIG 模板中获取数组并发现 app session get index 但是当我调用它时 它返回一个空字符串 我有一个 SESSION filter accounts 我在调用时收到此错
  • 使用 dplyr 填充缺失值(通过连接?)

    我有一个数据框 df1 其中缺少一些值 城市 州 SiteID City StateBasedIn Lat Lon Var1 Var2 4227 Richmond KY 39 113 6 0 4987 Nashville TN 33 97