我试图基于两个变量创建一个表格:贸易强度和军事支出。这些是整数值,但是我创建了一个虚拟变量,以便将它们分为每个国家(1个)或均值(0)以下。
我想要一个看起来像下面的表格,并拉上国家名称!基本上所有1和所有0都放入相应的框中。
Low Trade High Trade
Low Military Spend xxx, xxx, xxx xxx, xxx
High Military Spend xxx, xxx xxx
这有可能吗?我根本不知道该怎么做。
非常感谢,N
答案 0 :(得分:0)
这是一个可行的解决方案。首先,我要准备一些数据。
library(dplyr)
example_of_your_data <-
tibble(country_name = paste("Country ", LETTERS),
milex_dummy = sample(c(0, 1), 26, replace = TRUE),
trade_dummy = sample(c(0, 1), 26, replace = TRUE))
example_of_your_data
看起来像这样:
# A tibble: 26 x 3
country_name milex_dummy trade_dummy
<chr> <dbl> <dbl>
1 Country A 1 0
2 Country B 1 1
3 Country C 1 1
4 Country D 1 0
5 Country E 1 0
6 Country F 0 1
7 Country G 1 0
8 Country H 1 1
9 Country I 0 1
10 Country J 1 1
# ... with 16 more rows
然后,我将您的虚拟数值变量转换为因子,并将数据汇总为长格式:
example_of_your_data %>%
mutate(military = factor(milex_dummy,
labels = c("Low Military Spend",
"High Military Spend")),
trade = factor(trade_dummy,
labels = c("Low Trade",
"High Trade"))) %>%
group_by(military, trade) %>%
summarize(country = paste(country_name, collapse = ", ")) -> tbl_long
然后我构造矩阵。
with(tbl_long, {
matrix(country,
nrow = 2,
byrow = TRUE,
dimnames = list(levels(military),
levels(trade)))
})