替换列中匹配的值

2023-12-02

我是 R 编程新手,我一直停留在下面的示例上。

基本上我有两个数据集:

数据集1:

ID       Category        
1        CatZZ         
2        CatVV         
3        CatAA  
4        CatQQ

数据集2:

ID  Category  
1   Cat600  
3   Cat611 

我试图用 dataset2 中的“类别”值覆盖 dataset1 中的“类别”值,其中两个数据集之间存在 ID 匹配。

所以结果看起来像这样:

数据集1:

ID  Category    
1   Cat600  
2   CatVV  
3   Cat611  
4   CatQQ  

In tidyverse你可以做:

df1 %>%
 left_join(df2, by = c("ID" = "ID")) %>% #Merging the two dfs on ID
 mutate(Category = if_else(!is.na(Category.y), Category.y, Category.x)) %>% #If there is a match, taking the value from df2, otherwise from df1
 select(ID, Category) #Deleting the redundant variables

  ID Category
1  1   Cat600
2  2    CatVV
3  3   Cat611
4  4    CatQQ

Or:

df1 %>%
 left_join(df2, by = c("ID" = "ID")) %>% #Merging the two dfs on ID
 gather(var, val, -ID) %>% #Transforming the data from wide to long format
 arrange(ID) %>% #Arranging by ID
 group_by(ID) %>% #Grouping by ID
 mutate(Category = if_else(!is.na(nth(val, 2)), nth(val, 2), first(val))) %>% #If non-NA, taking the value from df2, otherwise from df1
 spread(var, val) %>% #Returning the data to wide format
 select(ID, Category) #Removing the redundant variables 

     ID Category
  <int> <chr>   
1     1 Cat600  
2     2 CatVV   
3     3 Cat611  
4     4 CatQQ

样本数据:

df1 <- read.table(text = "ID       Category        
1        CatZZ         
2        CatVV         
3        CatAA  
4        CatQQ", header = TRUE, stringsAsFactors = FALSE)

df2 <- read.table(text = "ID  Category  
1   Cat600  
                  3   Cat611", header = TRUE, stringsAsFactors = FALSE)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

替换列中匹配的值 的相关文章

  • R 编程中的字符串分割

    目前 下面的脚本将组合的项目代码拆分为特定的项目代码 rule2 lt c MR df 1 lt test grep paste rule2 sep collapse test Name y SpaceName 1 lt function
  • 当重复的行具有不同的值时,如何将 DataFrame 上的重复行合并为一行

    我有一个DataFrame像下面这样 ID NAME TEL 1 TEL 2 TEL 3 1 John 123456 754987 465317 1 John 465987 465987 1 John 546783 2 Robert 264
  • 如何正确调整 R 中 ggplot 的各个方面的大小,包括图例?

    我在 ggplot2 中制作散点图 然后使用 ggsave 导出特定宽度和高度的 PDF 但是 图形图例永远不会使用 ggsave 正确调整大小 其边框不会留在绘图内 是否有另一种方法可以同时调整 ggplot 所有部分的大小以便于导出 我
  • R tm 包创建 N 个最常见术语的矩阵

    我有一个termDocumentMatrix使用创建的tmR 中的包 我正在尝试创建一个包含 50 个最常出现的术语的矩阵 数据框 当我尝试转换为矩阵时 出现此错误 gt ap m lt as matrix mydata dtm Error
  • 枚举所有可能的二元组星座

    我正在寻找一种方法来枚举 n 个成员的所有可能的两人组星座 例如 对于 n 4 个成员 以下 3 个独特的组星座是可能的 请注意 组内成员的顺序和组顺序都不重要 1 2 3 4 1 3 2 4 1 4 2 3 例如 对于 n 6 个成员 可
  • R 未获取用户库

    我有一个带 R 3 6 0 的 Fedora 30 系统 用户库设置在Renviron就像这个 R LIBS USER R LIBS USER R x86 64 redhat linux gnu library 3 6 事实上 它出现在交互
  • 通过 rpy 将 SPSS 文件(.sav)导入 pandas 时如何保留标签?

    我正在寻找使用 SPSS 文件 sav pandas 在没有 SPSS 程序的情况下 典型文件转换为 csv 后的样子如下 在调查前两行的含义时 我不知道 SPSS 似乎第一行包含Labels 而第二行包含VarNames 当我将文件带入
  • 递归累积函数

    我需要在 R 中编写一个累积求和函数 但我一直碰壁 该函数具有以下结构 a x1 a x2 a 2 x1 a x3 a 2 x2 a 3 x1 a x4 a 2 x3 a 3 x2 a 4 x1 等等 cumsum 似乎不适用于此类功能 有
  • 确定 R 中的组是否重复某个值

    我有一个包含许多列和行的数据 我想通过创建新的逻辑变量来确定某个组的值是否重复 相同 所以我的数据如下所示 v0 lt c 1 2 3 4 5 6 7 8 9 v1 lt c a b a c e c b b e v2 lt c R NA R
  • 为什么 as.character() 返回日期列表中的整数?

    我惊讶地发现 R 中出现以下行为 as character c Sys Date gt 1 2018 02 05 as character list Sys Date gt 1 17567 为什么会出现这种情况 也就是说 显然 17567
  • 在 R 中索引数据帧

    再会 我不明白这里的主题 就像它有效但我不明白为什么 我有这个数据库 planets df is pre loaded in your workspace Use order to create positions positions lt
  • 如何导入 .tsv 文件

    我需要读取一个表 tsvR 中的文件 test lt read table file drug info tsv Error in scan file what nmax sep dec quote skip nlines na strin
  • Pandas:根据其他列值有条件地替换值

    我有一个数据框 df 如下所示 environment event time 2017 04 28 13 08 22 NaN add rd 2017 04 28 08 58 40 NaN add rd 2017 05 03 07 59 35
  • 指定生存图的自定义时间点

    我正在努力使用以下方法创建生存 累积事件图ggsurvplot函数从survminer包裹 我想为我的绘图指定自定义时间点 但我不知道该怎么做 这xlim and break x by参数有点帮助 但它们创建了均匀间隔的时间点和比我想要的更
  • Mac OS X 10.13 上的 RStudio 在尝试使用 fix() 时出现 X11 不可用错误

    我已经使用自制程序在我的计算机上安装了 XQuartz 然后重新启动了我的计算机 当我尝试在 RStudio 中使用 fix 命令时 出现以下错误 gt College read csv College csv header T na st
  • 获取行名以 ABC111 开头的所有行

    我们有以下数据框 col1 col2 col3 ABC111001 12 12 13 ABC111002 3 4 5 ABC000111 7 6 1 ABC000112 9 23 1 如何获取行名以 开头的所有行ABC111 如下 ABC1
  • R:install.packages 中出现错误:无法打开连接

    我试图安装 RINDSEL 包 但无法安装它 并且不断收到以下错误 install packages 中出错 无法打开连接 我从以下位置下载了该软件包 rindsel 1 0 2 zip 综合养殖平台 http old ibpdev net
  • R.scale() 和 sklearn.preprocessing.scale() 之间的区别

    我目前正在将数据分析从 R 转移到 Python 当在 R 中缩放数据集时 我将使用 R scale 根据我的理解 它将执行以下操作 x mean x sd x 为了替换该函数 我尝试使用 sklearn preprocessing sca
  • 在闪亮的应用程序中使用传单地图作为过滤器

    是否可以使用传单地图来过滤闪亮应用程序中的数据 就像在 Tableau 或 Power BI 中一样 方法是单击地图上的某个状态 然后根据条件过滤另一个图表或表格选择 None
  • Pandas:数据帧累积和,如果其他列为假则重置[重复]

    这个问题在这里已经有答案了 我有一个包含 2 列的数据框 这里的目标很简单 如果行列设置为 False 则重置 df cumsum df value condition 0 1 1 1 2 1 2 3 1 3 4 0 4 5 1 想要的结果

随机推荐

  • pandas.qcut 和 pandas.cut 有什么区别?

    文档说 http pandas pydata org pandas docs dev basics html 可以使用 cut 基于值的 bin 和 qcut 基于样本分位数的 bin 函数对连续值进行离散化 对我来说听起来很抽象 我可以看
  • 被 FileNotFound 异常难住了

    我想做的就是从文本文件导入数据 该文件位于 C temp text txt 但是 我不断收到文件未找到错误 我到底做错了什么 public static void main String args throws IOException St
  • 当应用程序是服务时,SetWinEventHook 回调不起作用

    我有一个在 NET 4 0 中制作的应用程序 它挂钩 win 事件并使用回调来捕获窗口事件 如下所示 import the methos from the dll DllImport user32 dll SetLastError true
  • 如何使用android的seekbar来显示时间选择?

    I have tried seekbar normal task to display the time from 1 to 12 but I have little different requirement 请有人可以帮助我获得像这样的
  • 无法从 .winmd 文件获取类型

    我想在给定路径的 winmd 文件中输出类型 我将 winmd 文件从 Windows 8 Developer Preview 计算机复制到我的开发计算机 我编写了一个小型测试应用程序 使用 C NET 4 0 而不是 4 5 它尝试在运行
  • MSGestureHold 被 Windows Phone 8.1 的 WebBrowser 控件忽略

    我正在更新我的浏览器应用程序以支持 Windows Phone 8 1 我注意到MSGestureHold事件没有被引发 要重现此错误 下载MS 迷你浏览器示例 在Visual Studio 2013中将项目升级为WP8 1项目并添加IsS
  • C语言中的随机数生成器是如何工作的?

    我正在尝试生成 0 到 40 含 之间的随机数 所以我实现的代码是这样的 y rand 41 然而 每次我单击 编译 并单击 运行 它输出相同的随机数 例如 我循环运行了这个 for i 0 i lt 4 i y rand 41 print
  • StringIO 和 BytesIO 有什么区别?

    StringIO 和 ByteIO 有什么区别 您会将每一种用例用于哪些类型的用例 正如名字所说 StringIO与str数据 同时BytesIO与bytes data bytes是原始数据 例如65 同时str解释此数据 例如使用 ASC
  • 将 SimpleCursorAdapter 与 Spinner 一起使用?

    我有一个数据库 其中表 mytable 有 2 列 id sampletext 我想查询示例文本的不同值并使用 SimpleCursorAdapter 提供给 Spinner 这是尝试过的 String cols new String sa
  • 找不到 SQL Server 配置管理器

    安装SQL Server 2008后 我找不到SQL Server Configuration Manager in Start SQL Server 2008 Configuration Tools menu 我应该做什么来安装这个工具
  • 不可为空类型 'System.DateTime' ,ASP.NET MVC

    我有一个注册页面 由于内容问题 我们必须要求并强制申请人提供出生日期 所以按理说这个字段不能为空 我使用 jQuery 在文本框上加水印 告诉他们可以单击它并获取 jQuery UI 日历对象来选择日期 选择日期效果很好 这不是问题 在测试
  • 重写 App.xaml.cs 中的方法值

    我正在开发 Windows 8 Phone 应用程序 我这里有两件事 一个是库项目 另一个是普通应用程序 让我首先解释一下我的代码 在图书馆项目中 class A public static string empName ABC publi
  • 如何从 .ipa 文件获取源代码? [复制]

    这个问题在这里已经有答案了 可能的重复 是否可以对我的 iPhone 应用程序进行逆向工程 我正在为客户构建一个应用程序 并希望向他发送我创建的每个构建的 ipa 文件 以便他可以使用该应用程序 然而 在他付钱给我之前 我不希望他能够访问源
  • 如何将SwingWorker的publish委托给其他方法

    我的 问题 可以用以下方式描述 假设我们有一个密集的进程 我们希望在后台运行并让它更新 Swing JProgress 栏 解决方案很简单 import java util List import javax swing JOptionPa
  • 在 Mac OSX 上使用 MAMP 时,如何让 CakePHP Baker 找到 mysql.sock 并识别 MySQL?

    我目前正在阅读 David Golding 的 Beginning CakePHP From Novice to Professional 在某一时刻 我必须使用 CLI 命令 蛋糕烘焙 我会看到欢迎屏幕 但当我尝试烘焙时 例如 控制器我收
  • c++ 11 mersenne_twister_engine 类的问题

    我一直在尝试使用 c 11 mersenne twister engine 类 http www cplusplus com reference random mersenne twister engine 生成区间 0 1 中的数字 但是
  • create-react-app 自版本 4.0.1 起不再工作

    我尝试安装create react app using npm i create react app npx create react app new app and npm init react app new app 但我不断收到此错误
  • 如何使用甲骨文钱包

    我正在尝试将密码存储在 Oracle Wallet 文件中 我将从代码中检索并使用该文件 我尝试创建一个钱包并在那里保存凭证 mkstore wrl
  • “OPEN_URI”的菜单项不存在于菜单项返回中

    我有一张卡片正在通过镜像 API 插入到我的时间线中 该卡有 3 个选项 扫描 回复 删除 预期 gt 条码测试 扫描 回复 删除 已收到 gt 条码测试 回复 删除 回复和删除选项仅在菜单项上返回 如果我将 OPEN URI 更改为 CU
  • 替换列中匹配的值

    我是 R 编程新手 我一直停留在下面的示例上 基本上我有两个数据集 数据集1 ID Category 1 CatZZ 2 CatVV 3 CatAA 4 CatQQ 数据集2 ID Category 1 Cat600 3 Cat611 我试