热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

使用另一个数据表中的列中的值更新一个数据表中的一列NA

如何解决《使用另一个数据表中的列中的值更新一个数据表中的一列NA》经验,为你挑选了1个好方法。

我在这个主题上看过类似的帖子,但无法理解解决方案.基本上我有一个数据表(DT1)与分数和一些NA.只要有'NA',我想要一个引用另一个数据(DT2)表的过程,该表在两个表(通道)中都有一个公共列,然后使用DT2的得分列值更新DT1中的NA.我正在选择一个数据表类,因为我认为它是一个有效的选择.

DT1

         tract CreditScore    
1: 36107020401         635  
2: 36083052403          NA  
3: 36091062602          NA  
4: 36067013000          NA  
5: 36083052304          NA  

DT2

         tract CreditScore  
1: 36107020401         635  
2: 36083052403         650  
3: 36091062602         335  
4: 36067013000         777  
5: 36083052304         663  

Arun.. 11

我们为一些data.table概念创建了新的(更全面的)HTML插图.看看这里的,我们正在从事的其他小插曲.我正在研究连接的小插图,这样做有希望能更好地澄清这些类型的问题.


这个想法是首先setkey()DT1专栏上tract.

setkey(DT1, tract)

在data.tables中,表单的连接x[i]需要键x,但不一定是i.这导致两种情况:

如果i还有键设置 - 第一个键列i与第一个键列匹配x,第二个键与第二个键匹配,依此类推.

如果i没有按键-的第一列i是针对第一个匹配的的列x,第二列i对第二个的列x等..

在这种情况下,由于您的第一列i也是tract,我们将跳过设置键i.

然后,我们执行表单的连接x[i].通过这样做,计算每个i匹配的行索引x,然后实现连接结果.但是,我们不希望整个连接结果作为新的data.table.相反,我们想要在那些匹配的行上更新DT1's CreditScoreDT2.

在data.tables中,我们可以在加入时通过提供表达式来执行该操作j,如下所示:

DT1[DT2, CreditScore := i.CreditScore]
#          tract CreditScore
# 1: 36067013000         777
# 2: 36083052304         663
# 3: 36083052403         650
# 4: 36091062602         335
# 5: 36107020401         635

DT1[DT2part找到DT1每行中的匹配行DT2.如果有匹配,我们希望DT2更新价值DT1.我们完成,通过使用i.CreditScore-这指DT2CreditScore柱(i.是用于与之间相同的名称来区分列的前缀xidata.tables).


更新:正如评论中指出的那样,上面的解决方案也会更新非NA值DT1.因此,这样做的方法是:

DT1[is.na(CreditScore), CreditScore := DT2[.(.SD), CreditScore]]

在哪里那些行CreditScoreDT1IS NA,取代CreditScoreDT1从值CreditScore从加入的获得DT2[.(.SD)],其中.SD对应于data.table的,其中含有所有行的子集CreditScoreNA.

HTH



1> Arun..:

我们为一些data.table概念创建了新的(更全面的)HTML插图.看看这里的,我们正在从事的其他小插曲.我正在研究连接的小插图,这样做有希望能更好地澄清这些类型的问题.


这个想法是首先setkey()DT1专栏上tract.

setkey(DT1, tract)

在data.tables中,表单的连接x[i]需要键x,但不一定是i.这导致两种情况:

如果i还有键设置 - 第一个键列i与第一个键列匹配x,第二个键与第二个键匹配,依此类推.

如果i没有按键-的第一列i是针对第一个匹配的的列x,第二列i对第二个的列x等..

在这种情况下,由于您的第一列i也是tract,我们将跳过设置键i.

然后,我们执行表单的连接x[i].通过这样做,计算每个i匹配的行索引x,然后实现连接结果.但是,我们不希望整个连接结果作为新的data.table.相反,我们想要在那些匹配的行上更新DT1's CreditScoreDT2.

在data.tables中,我们可以在加入时通过提供表达式来执行该操作j,如下所示:

DT1[DT2, CreditScore := i.CreditScore]
#          tract CreditScore
# 1: 36067013000         777
# 2: 36083052304         663
# 3: 36083052403         650
# 4: 36091062602         335
# 5: 36107020401         635

DT1[DT2part找到DT1每行中的匹配行DT2.如果有匹配,我们希望DT2更新价值DT1.我们完成,通过使用i.CreditScore-这指DT2CreditScore柱(i.是用于与之间相同的名称来区分列的前缀xidata.tables).


更新:正如评论中指出的那样,上面的解决方案也会更新非NA值DT1.因此,这样做的方法是:

DT1[is.na(CreditScore), CreditScore := DT2[.(.SD), CreditScore]]

在哪里那些行CreditScoreDT1IS NA,取代CreditScoreDT1从值CreditScore从加入的获得DT2[.(.SD)],其中.SD对应于data.table的,其中含有所有行的子集CreditScoreNA.

HTH


推荐阅读
  • 在 Windows 10 中,F1 至 F12 键默认设置为快捷功能键。本文将介绍几种有效方法来禁用这些快捷键,并恢复其标准功能键的作用。请注意,部分笔记本电脑的快捷键可能无法完全关闭。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • Vue 2 中解决页面刷新和按钮跳转导致导航栏样式失效的问题
    本文介绍了如何通过配置路由的 meta 字段,确保 Vue 2 项目中的导航栏在页面刷新或内部按钮跳转时,始终保持正确的 active 样式。具体实现方法包括设置路由的 meta 属性,并在 HTML 模板中动态绑定类名。 ... [详细]
  • 本文详细介绍了如何在BackTrack 5中配置和启动SSH服务,确保其正常运行,并通过Windows系统成功连接。涵盖了必要的密钥生成步骤及常见问题解决方法。 ... [详细]
  • 本文探讨了如何在 React 和 TypeScript 中使用高阶组件(HOC)来消耗上下文,并详细解释了相关类型定义和实现细节。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • Yii 实现阿里云短信发送 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文探讨如何设计一个安全的加密和验证算法,确保生成的密码具有高随机性和低重复率,并提供相应的验证机制。 ... [详细]
  • 本文探讨了如何在发布 XenApp 应用时,通过命令行参数实现启动时的参数传递。特别介绍了静态和动态参数传递的方法,并详细解释了 ICA 文件中两种参数传递方式的区别及安全检查机制。 ... [详细]
author-avatar
晨钟暮鼓芋
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有