假设我具有以下数据框:
df <- data.frame(teams=c("A", "A", "C", "C", "D", "D"),
country=c("Italy","Italy","Italy","Italy", "India","India"),
players=c("ac","bd","fg","ji","ki","yr"),
stringsAsFactors = FALSE)
我要创建一个矩阵,如下所示:
基本上,“团队”和“国家”应该分别是矩阵的行和列,并且值应该是球员名称的计数。
有人可以告诉我如何在R中做到这一点吗?
谢谢
答案 0 :(得分:0)
使用dplyr和tidyr:
library(dplyr)
library(tidyr)
df %>%
count(teams, country) %>%
pivot_wider(names_from = country,
values_from = n,
values_fill = list(n = 0))
# A tibble: 3 x 3
teams Italy India
<chr> <int> <int>
1 A 2 0
2 C 2 0
3 D 0 2
答案 1 :(得分:0)
as.matrix(table(df$teams, df$country))
# India Italy
# A 0 2
# C 0 2
# D 2 0
# If order matters
df$country <- factor(df$country, levels=c("Italy", "India"))
as.matrix(table(df$teams, df$country))
# Italy India
# A 2 0
# C 2 0
# D 0 2