【发布时间】:2017-04-17 05:46:10
【问题描述】:
我有一个非常奇怪和复杂的问题,我什至不知道如何描述它,但我会尽力而为。
我正在查看点名数据。我的数据列是对立法机关的个人唱名投票。第一行是唱名投票的政策领域(政策领域被编码为“R”、“G”、“W”和“B”)投票,所有剩余的行表示个别立法者以及他们如何投票唱名表决。编码为 9 的意见表明缺少立法者。值 1 表示立法者投了赞成票,值 2 表示他们投了反对票。
我正在尝试检查唱名投票的一个子集,并确定立法者是否战略性地错过了选票。具体来说,我正在探讨立法者是投了上一次唱名表决还是下一次唱名表决。例如我有以下数据:
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
Issu R G G W R G R B R G
Leg1 1 9 1 9 9 1 2 1 1 2
Leg2 9 2 1 9 9 9 1 2 1 2
Leg3 1 1 1 1 9 2 1 9 1 2
首先,我想检查所有不等于 G 的“Iss”或政策领域投票(如果它们被编码为 R、W 或 B 无关紧要)。
其次,我想检查所有个别立法者对这些唱名投票的投票。具体来说,我想检查他们是否错过了对非 G 点名的投票(同样,错过的选票被编码为 9)。
接下来,我想根据所有非 G 点名的缺失点名(编码为 9)创建两个分数。分数表明立法者是否也错过了之前或之后的投票(无论政策领域如何)。第一个分数是他们是否错过了之前或之后的投票。第二个分数是他们在之前和之后错过投票的地方。我想为所有唱名投票(非 G 唱名)加上这些分数。如果成员没有错过对非 G 的唱名投票,那么该个人唱名将为其总分贡献 0 值。如果他们错过了那个单独的点名(例如,他们得到了 9 的值),但是在之前和之后的点名投票中都在场,那么那个单独的点名将对他们的分数贡献 0 值。
例如,在上面的例子中,我会给三个立法者以下两个分数
Or Score And Score
Leg1 2 0
Leg2 1 1
Leg3 0 0
立法者 1 的“或”得分值为 2,因为对于 V4(他们获得 9 分)他们错过了接下来的点名,而对于 V5(他们也获得 9 分)他们错过了之前的点名。立法者 2 的“或”分数将为 1,因为对于 V4,他们错过了以下分数。对于“与”得分,立法者 2 将获得 1 的值,因为对于 V5,他们错过了之前和之后的唱名表决(例如三个 9)。最后,Leg 3 的两个分数都将获得零值,因为虽然他们错过了选票,但他们投票支持了前一票和后一票。
我的问题如下,R中有没有办法计算“或”分数和“与”分数?任何帮助将不胜感激。考虑到有这么多的条件关系,我什至不确定如何继续解决这个问题。循环最好吗?再次,我为造成的混乱道歉。
【问题讨论】:
-
听起来像是一个家庭作业问题,我想我在 SO 上看到过类似的问题。建议您先搜索。
-
立法者 2 是否应该得到 OR 得分,因为他错过了 V5,但也错过了 V4 或 V6?如果不是,这会使布尔逻辑复杂化。 AND 应该自动算作 OR。
-
是的,你是正确的立法者 2 应该得到 OR 分数。非常感谢! (顺便说一句,不,这不是家庭作业)。
标签: r loops if-statement