【发布时间】:2015-03-05 22:29:33
【问题描述】:
我看到过有关此主题的类似帖子,但无法理解解决方案。本质上,我有一个带有分数和一些 NA 的数据表(DT1)。无论哪里有“NA”,我都想要一个引用另一个数据 (DT2) 表的过程,该表在两个表 (tract) 中都有一个公共列,然后用 DT2 的 score 列的值更新 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
【问题讨论】:
-
如果您使用的是
data.table包,您需要在问题中明确说明。我不清楚您是指特定于data.table的数据结构还是data.frame的基本结构。是否有原因(例如大小/内存问题)您不能只合并两个表并使用ifelse()创建一个具有适当值的新列? -
@Alex,是的。他也可以将数据加载到 Excel 中并执行
vlookup,不是吗?更具体地说,data.table可以执行二进制 连接并在连接时通过引用更新列。这将比merge+ifelse在大数据集上的几个因素更有效。 -
感谢您的 cmets。是的,我选择使用 data.table 包的主要原因是它的整体效率。如果不需要,我不想在 DT1 中添加另一列。我将尝试下面的答案,看看它是如何工作的......谢谢和欢呼!
标签: r reference data.table