我是R和论坛的新手,所以如果您需要更多信息以帮助我解决此问题,请告诉我。预先感谢您的帮助!
我目前遇到一个问题,理论上应该可以使用.drop命令轻松解决该问题,尽管出于某种原因,该命令对我不起作用。
我想创建一个对象,其中包括反对派在议会中对某一票的赞成票和反对票。现在,当频率计数> 0时,它包括“是”和“否”的频率。但是,如果反对派对该问题投了赞成票(例如200票赞成,0票反对),则出于某些原因而放弃了0个频率。
library(foreign)
library(tidyverse)
library(readstata13)
library(tibbletime)
library(lubridate)
library(car)
BTFULLOPPSUM <- BTFULLD %>% dplyr::filter(Opposition == 1) %>% dplyr::group_by(vote_id, vote_beh, .drop = FALSE) %>%
dplyr::summarise(number = n())
#BTFULLOPPSUM is the new object. BTFULLD the dataframe
这就是结果。
number
vote_id Y/N number
1 9001 0 226
2 9002 0 227
3 9003 0 213
4 9004 0 16
5 9004 1 196
1 == Yes, 0 == NO
这就是我想要的:
1 9001 0 226
2 9001 1 0
3 9002 0 227
4 9002 1 0
vote_beh是投票决定,因此是(1)或否(0)。我希望这样就足够了,因为问题已经从9001表决开始,因为没有反对党投了赞成票。 (例如,这次投票的反对党是基民盟/基社盟)。
这是vote_id 9001重要变量的一小部分。对我来说,这更令人困惑,但也许您可以使用它。
structure(list(vote_id = c(9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001, 9001,
9001, 9001, 9001), vote_beh = c(0, 0, 1, 0, 1, 1, 1, 0, 1, 1,
0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0,
0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1,
1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0,
0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1,
0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1,
1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0,
1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1,
0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1,
1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1,
0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0,
0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1,
1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0,
1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1,
1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0,
0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0,
1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0,
0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0,
1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1,
0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0,
1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0,
1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0
), Opposition = c(1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0,
0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0,
1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1,
0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1,
0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1,
1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0,
1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0,
1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1,
0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1,
1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1,
1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0,
0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1,
1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,
1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0,
0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1,
1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1,
1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0,
1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1,
1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0,
0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1)), class = c("tbl_df",
"tbl", "data.frame"), row.names = c(NA, -493L))
[tidyr::complete
将为指定变量的每种组合创建行-在这里很有用,这样您就可以为每个vote_id
获得Y + N行。
library(tidyverse)
BTFULLOPPSUM <- tibble::tribble(
~vote_id, ~Y_N, ~number,
9001, 0, 226,
9002, 0, 227,
9003, 0, 213,
9004, 0, 16,
9004, 1, 196
)
BTFULLOPPSUM %>%
complete(vote_id, Y_N, fill = list(number = 0))
## A tibble: 8 x 3
# vote_id Y_N number
# <dbl> <dbl> <dbl>
#1 9001 0 226
#2 9001 1 0
#3 9002 0 227
#4 9002 1 0
#5 9003 0 213
#6 9003 1 0
#7 9004 0 16
#8 9004 1 196