计算字符串变量中的对数

时间:2020-02-06 12:32:14

标签: r string

对于一个研究项目,我想在一个高度分散的政党系统的面板数据集中,根据包含政党组成的联盟的字符串变量,形成两组(例如,左/右),如第(3列)所示)的以下简化示例:

parties <- c("A","A", "A", "B", "B", "B")
year <- c(2000, 2001, 2003, 2001, 2002, 2003)
coalitions <- c("A, C, D", "A,C", "A,E", "B,F,G", "B,G", "B,H")
d <- data.frame(parties,year,coalitions)

我有两个定点,例如甲方(左)和乙方(右)。为了接收两个组,我想有一张桌子告诉我这两个方A和B与哪个方组成联盟,在我的示例中:

A组:(A,C:2),(A,D:1),(A,E:1)

B组:(B,G:2),(B,F:1),(B,H:1)

这将允许我设置一个阈值(如果很少有与A和B组成联盟的政党)。有谁能帮我解决一个不需要(由于数目众多)的问题,理想情况下仅基于第(3)列就需要A和B以外的其他各方的名称?提前非常感谢!

1 个答案:

答案 0 :(得分:3)

library(tidyverse)

d %>%
  separate_rows(coalitions) %>%
  filter(parties != coalitions) %>%
  count(parties, coalitions)

# # A tibble: 6 x 3
#   parties coalitions     n
#   <fct>   <chr>      <int>
# 1 A       C              2
# 2 A       D              1
# 3 A       E              1
# 4 B       F              1
# 5 B       G              2
# 6 B       H              1