我有一个关于根据另一个数据表中的信息向数据表中添加列的问题
我的数据是这样的:
数据表 1(足球比赛)
TeamcodeHome TeamcodeAway GoalsHome GoalsAway Season
1 2 5 0 2006
数据表2(足球队收到的卡片):
Teamcode Season Red Yellow
1 2005 1 15
2 2005 3 10
1 2006 4 16
2 2006 1 4
现在,如果我想基于另一列添加一列,我将在datatable中使用以下函数:
dt.1[dt.2, on="Teamcode", RedCards:=Red]
但现在有两个变量需要匹配。球队代码和赛季。这是如何工作的?
帮助页面 ?data.表
说明了 on
参数:
指示< code>i中的哪些列应该与< code>x中的列连接,以及要连接的二元运算符的类型。指定时,这将覆盖在< code>x和< code>i上设置的键。有多种方法可以指定on参数:
(它还推荐渐晕二级索引和自动索引。)
因此,这可能是两列上的连接:
dt.1[dt.2, on = .(TeamcodeHome = Teamcode, Season), RedCardsHome := Red][]
TeamcodeHome TeamcodeAway GoalsHome GoalsAway Season RedCardsHome
1: 1 2 5 0 2006 4
对于虚拟数据集 现在数据集看起来像这样: 3列。对于每个团队,他们在不同的列中有团队成员和团队领导。团队可能只有成员而没有领导者,反之亦然。 以下是我几乎想要的输出: 我希望将两列合并成一列,如果其中一列是团队领导,则添加一个标记。 我有一个丑陋的解决方案, <代码>dt1 问题: > 我认为,这种解决方案不是有效的,先合并,然后融化。那么,还有其他方法吗? 在第3行和第4行有重复的行。 当我试图
我使用数据表来存储数据。我试图弄清楚每行中的某些列是否是唯一的。我想在data.table中添加一列,如果有重复值,该列将保存值“重复值”,如果没有重复值,该列将为NA。我要检查重复的列名存储在一个字符向量中。例如,我创建了我的数据表: 我还有另一个变量,指示需要检查哪些列是否重复。重要的是,我能够将列名存储在字符向量中,而不需要“知道”它们(因为它们将作为参数传递给函数)。 我希望输出是: 如果
我有两个结构相同的data.table。两个键列后跟许多数据列。数据列的数量可能会有所不同。我想将第二data.table的值添加到第一data.table.的相应行/列中 到目前为止,我的最佳选择如下: 请注意,nrow 和 ncol 以及 loc 和产品条目都是可变的,具体取决于源数据。 如果 DT2 中的每一行都与 DT1 中的一行匹配,则此方法有效,否则会产生意外的结果。有没有一种更严格/
我有两个数据。表X和表Y。 列 X: Y 中的值列: 创建两个data.tables: 我设置了 X 和 Y 的键: 现在,我尝试通过X中的< code>id和Y中的< code>ID来连接X和Y: All引发错误,指出参数中的列名无效。 我查阅了data.table的手册,发现< code>merge函数不支持< code>by.x和< code>by.y参数。 如何在不更改列名的情况下通过不同
rbindlist做的正是我需要的,但'do.call'做不到! do.Call不是我想要的
问题内容: 我必须按照下面显示的方式创建一个表。我们可以这样创建吗?(如是) 表名称:样本 其中包含多个值的类别归档。 以及我们如何搜索类别4出现在表格的哪一行。 问题答案: 您无法创建嵌套表。而且您想到的并不是设计这样的桌子的好主意。您应该有两个表(如果是category,则恰好三个 表 包含描述)。一个用于,第二个表保存 每个产品 的 类别 。示例设计如下所示, 和填充样本记录 SQLFidd