使用 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 填充缺失值(通过连接?) 的相关文章

  • 将循环转换为并行计算的函数

    我正在使用 R 编程语言 我遇到这个问题 我试图找出两个 shapefile 之间的成对交集 即第一个 shapefile 中的每个多边形与第二个 shapefile 中的所有多边形相交的百分比 我想我找到了解决这个问题的基本方法 Load
  • 使用 R Shiny 从 XLConnect 下载 Excel 文件

    有没有人尝试过使用 R Shiny 中的下载处理程序通过 XLConnect 下载新创建的 Excel 文件 在 ui R 中有一行不起眼的行 downloadButton downloadData Download 在 server R
  • 如何提取与 R 中主题 ID 列表匹配的行?

    我有一个包含许多主题 ID 的数据框 每个主题都有重复观察 我还有一个单独的数据框 其中只有一个主题 ID 列表 我想从更大的数据框中匹配和提取 如何以允许我引用不同数据帧中的SubjectID列表的方式编写代码 不确定我是否完全理解这个问
  • 返回数据帧 R 中的下一行

    我有一个看起来像这样的数据框 kind datetime book 2016 04 23 04 23 00 pen 2016 04 23 04 30 00 toy 2016 04 23 06 45 00 我想为数据集中的每一行返回下一行的日
  • 将 Instagram/youtube 嵌入 Shiny R 应用程序

    我想通过点击图表来播放 Instagram 或 Youtube 视频 例如显示异常值等 到目前为止 明确告诉 Shiny 视频内容是有效的 require shiny require ggplot2 data df lt data fram
  • 基于另一个数据集获取数据集的子集

    假设我有一个数据集 即 dat1 ID block plot SPID TotHeight 1 1 1 4 44 5 2 1 1 4 51 3 1 1 4 28 7 4 1 1 4 24 5 5 1 1 4 27 3 6 1 1 4 20
  • R 中具有稳健回归的异常值

    我正在使用lmrobR 中的函数使用robustbase用于稳健回归的库 我会把它用作 rob reg lt lmrob y 0 dat method MM control a1 当我想返回我使用的摘要时summary rob reg 稳健
  • 如何对同一列上的数据帧列表中的所有数据帧进行排序?

    我有一个数据框列表dataframes list 举个例子 我把dput dataframes list 在底部 我想对列列表中的所有数据框进行排序enrichment 我可以对一个数据框进行排序 first dataframe lt da
  • 如何在R中删除重复项

    我有一个非常大的数据集 如下所示 df lt data frame school c a a a b b c c c year c 3 3 1 4 2 4 3 1 GPA c 4 4 4 3 3 3 2 2 school year GPA
  • 如何在 ggplot 中保持配色方案,同时删除每个图中未使用的级别?

    我想比较一个图中的数据的一些子组和另一图中的一些其他子组 如果我绘制一个图 其中绘制了所有子组 那么这个数字将是巨大的 并且每个单独的比较都会变得困难 我认为如果给定的子组在所有图中都具有相同的颜色 这对读者来说会更有意义 这是我尝试过的两
  • LDA with topicmodels,如何查看不同文档属于哪些主题?

    我正在使用 topicmodels 包中的 LDA 我已经在大约 30 000 个文档上运行它 获取了 30 个主题 并获得了主题的前 10 个单词 它们看起来非常好 但我想看看哪些文档属于哪个主题的概率最高 我该怎么做 myCorpus
  • 如何在for循环中引用变量?

    我正在循环访问不同的 data tables 和 data table 中的变量 但我在引用内部变量时遇到问题for loop dt1 lt data table a1 c 1 2 3 a2 c 4 5 2 dt2 lt data tabl
  • 使用 pracma::findpeaks 识别持续峰值

    我的语法有问题peakpat内的选项findpeaks内的函数pramcaR 包 v 2 1 1 我使用的是 R 3 4 3 x64 Windows 我希望该函数能够识别可能有两个重复值的峰值 并且我相信该选项peakpat这就是我能做到的
  • 在 R 中绘制 Likert 变量的堆积条形图

    假设我有一个如下所示的数据框 P Q1 Q2 1 1 4 1 2 2 3 4 3 1 1 4 其中的列告诉我哪个人相应地回答了问题 q1 q2 中的哪一个 这些问题需要按照 4 分李克特量表进行回答 例如 批准 表示 1 稍微批准 表示 2
  • 从命令行运行 R 代码 (Windows)

    我在名为 analysis r 的文件中有一些 R 代码 我希望能够从命令行 CMD 运行该文件中的代码 而无需通过 R 终端 并且我还希望能够传递参数并在我的代码中使用这些参数 例如就像下面的伪代码 C gt execute r scri
  • 在 R 中创建虚拟变量,排除某些情况为 NA

    我的数据看起来像这样 V1 V2 A 0 B 1 C 2 D 3 E 4 F 5 G 9 我想创建一个虚拟变量R where 0 1 1 2 3 4 and NA 0 5 9 应该很简单 有人可以帮忙吗 我们可以转换V2 into a fa
  • Purrr::map_df() 删除 NULL 行

    使用时purrr map df 我偶尔会传递一个数据框列表 其中一些项目是NULL 当我做 map df 返回行数少于原始列表的数据框 我想发生的事情是这样的map df calls dplyr bind rows 它忽略了NULL价值观
  • 在 R 中使用 lapply 绘制多个数据帧

    我正在尝试使用 lapply 函数绘制多个数据帧 每个数据帧一个图 但是尽管有关此主题的所有帖子我都找不到答案 因为我不断收到错误 图的输出列表为空 我的数据结构如下 df1 lt mtcars gt group by cyl gt tal
  • 只读取选定的列

    谁能告诉我如何仅读取下面每年数据的前 6 个月 7 列 例如使用read table Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 2009 41 27 25 31 31 39 2
  • 更改闪亮 R 中的默认浏览器

    我在 RStudio 中使用 01 hello 虽然在 IE 中默认打开程序时它不会显示直方图 但即使在 Chrome 中 滑块也不起作用 我无法滑动条形图并看到直方图中的变化 如何更改 R 中的默认浏览器 以便闪亮启动 Chrome 而不

随机推荐

  • 消失的对象 - 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