【发布时间】:2017-10-07 17:15:28
【问题描述】:
我有一个如下所示的数据框:
gov1rlc gov2rlc gov3rlc gov1vote gov2vote gov3vote
<int> <int> <int> <dbl> <dbl> <dbl>
3 2 NA 24.35 1.04 0
2 3 2 NA 24.35 1.04
3 2 NA 24.35 1.04 0
3 NA NA 54.40 0.00 0
3 NA NA 54.40 0.00 0
3 NA NA 54.40 0.00 0
此时,我想计算左翼政党的投票份额(gov1rlc、gov2rlc、gov3rlc 等于 3),为此我使用以下代码:
d <- d %>% mutate(left_share=case_when(gov1rlc==3&gov2rlc==3&gov3rlc==3~gov1vote+gov2vote+gov3vote,
gov1rlc==3&gov2rlc==3&gov3rlc!=3~gov1vote+gov2vote,
gov1rlc==3&gov2rlc!=3&gov3rlc==3~gov1vote+gov3vote,
gov1rlc==3&gov2rlc!=3&gov3rlc!=3~gov1vote,
gov1rlc!=3&gov2rlc!=3&gov3rlc!=3~0,
gov1rlc!=3&gov2rlc==3&gov3rlc==3~gov2vote+gov3vote,
gov1rlc!=3&gov2rlc==3&gov3rlc!=3~gov2vote,
gov1rlc!=3&gov2rlc!=3&gov3rlc==3~gov3vote))`
但是,之后我得到了Error in mutate_impl(.data, dots) : object 'gov1rlc' not found,考虑到我在管道中,并且相同的代码在另一台计算机上运行,这真的很奇怪。
如果我在每个对象之前使用d$ 运算符,则会显示以下消息:Error in mutate_impl(.data, dots) : NAs are not allowed in subscripted assignments。
简单地说:发生了什么,正在发生什么?
【问题讨论】:
-
听起来您使用的是非常旧的 dplyr 版本。更新应该可以解决问题。