【发布时间】:2020-07-18 15:50:21
【问题描述】:
我正在尝试准备我的变量以在回归分析中使用这些数据。创建以下数据表时出现错误。我需要准备数据以显示成员每年参与辩论的次数 (n_Edu),并在旁边包含其他相关变量。除了 days_in_house 变量之外,所有变量似乎都很好。这是我的代码。
library(data.table)
df1 <- data.table(df1)
mp_by_year <- df1[,list(n_parent_Edu = sum(parent_Edu), isFemale = unique(isFemale), party = unique(party), days_in_house = unique(days_in_house)), by = list(member_id, year)]
当我在没有 day_in_house 变量的情况下运行此代码(即仅使用 isFemale、parent_Edu、member_id、year 和 party 变量)时,它可以正常工作并生成一个新的数据框。但是,当我添加此变量时,它给了我以下错误。变量如下所示:
days_in_house
1647
6383
463
3528
462
3639
16
1738
16
187
3732
...等等。将此变量添加到数据表时出现以下错误:
“为第 242 组的第 3 列提供 2 个项目,该列有 5 行。RHS 长度必须为 1(单个值可以)或与 LHS 长度完全匹配。如果您希望“回收”RHS,请使用 rep () 明确地向您的代码的读者表明这一意图。”
我的其他变量如下所示:
是女性
0
1
0
0
0
0
1
派对
Conervative
Labour
Liberal Democrats
Conservative
Conervative
Labour
membership_id
463
283
352
287
27
372
年份
1997
1997
1997
1997
1997
【问题讨论】:
-
如果没有看到可重现的数据,很难确定(请参阅stackoverflow.com/questions/5963269/…),但我认为问题在于,对于该组,前面的列定义之一产生 4 行,而最后一个产生2(1或4都可以)。因此,问题不一定是 days_in_house 变量。我会验证每次使用 unique 都会返回一个值(或预期的值数)每个(member_id,year),例如
df1[,uniqueN(isFemale),list(member_id,year)][N != <expected_value]
标签: r data.table