R 创建具有重复值的数据帧

R 创建具有重复值的数据帧,r,data-manipulation,tibble,R,Data Manipulation,Tibble,我想创建一个如下所示的TIBLE: #一个tible:3 x 4 阿森纳队切尔西热刺队 1阿森纳赛尔夫伦敦北伦敦 2切尔西伦敦赛尔夫伦敦 3马刺北伦敦赛尔夫 如您所见,TIBLE中的信息是重复的。沿着第一排(球队=阿森纳),我们可以看到在阿森纳和热刺之间有一场北伦敦德比。类似地,从第三排(队=马刺)看,在“马刺”和“阿森纳”之间有一场“北伦敦”德比 让我们称之为tibbledf_derbies。我用以下代码创建了它: library(tidyverse) ## create vectors

我想创建一个如下所示的TIBLE:

#一个tible:3 x 4
阿森纳队切尔西热刺队
1阿森纳赛尔夫伦敦北伦敦
2切尔西伦敦赛尔夫伦敦
3马刺北伦敦赛尔夫
如您所见,TIBLE中的信息是重复的。沿着第一排(球队=阿森纳),我们可以看到在阿森纳和热刺之间有一场北伦敦德比。类似地,从第三排(队=马刺)看,在“马刺”和“阿森纳”之间有一场“北伦敦”德比

让我们称之为tibble
df_derbies
。我用以下代码创建了它:

library(tidyverse)

## create vectors
team <- c("arsenal", "chelsea", "spurs")
arsenal <- c("self", "london", "north-london")
chelsea <- c("london", "self", "london")
spurs <- c("north-london", "london", "self")

## combine vectors into dataframe
df_derbies <- tibble(team, arsenal, chelsea, spurs)
df_derbies
库(tidyverse)
##创建向量

team您可以使用矩阵并使用基本R的
upper.tri
lower.tri
函数,如下所示:

## create vectors
team <- c("arsenal", "chelsea", "spurs")
arsenal <- c("self", "london", "north-london")
chelsea <- c("", "self", "london")
spurs <- c("", "", "self")

## combine vectors into dataframe
df_derbies <- rbind(arsenal, chelsea, spurs)
rownames(df_derbies) <- c("arsenal", "chelsea", "spurs")
colnames(df_derbies) <- c("arsenal", "chelsea", "spurs")
df_derbies[lower.tri(df_derbies)] <- df_derbies[upper.tri(df_derbies)]
##创建向量

team您可以使用矩阵并使用基本R的
upper.tri
lower.tri
函数,如下所示:

## create vectors
team <- c("arsenal", "chelsea", "spurs")
arsenal <- c("self", "london", "north-london")
chelsea <- c("", "self", "london")
spurs <- c("", "", "self")

## combine vectors into dataframe
df_derbies <- rbind(arsenal, chelsea, spurs)
rownames(df_derbies) <- c("arsenal", "chelsea", "spurs")
colnames(df_derbies) <- c("arsenal", "chelsea", "spurs")
df_derbies[lower.tri(df_derbies)] <- df_derbies[upper.tri(df_derbies)]
##创建向量

团队为避免键入重复信息,您需要首先使用矩阵,然后将矩阵转换为TIBLE。以下是一种方法:

library(tibble)

teams <- c("arsenal", "chelsea", "spurs")
derbies <- c("london", "north-london", "london")
mx <- matrix("self", length(teams), length(teams))
mx[lower.tri(mx)] <- mx[upper.tri(mx)] <- derbies
df_derbies <- as_tibble(cbind(teams, mx), .name_repair = function(x) c("teams", teams))
库(TIBLE)

团队为避免键入重复信息,您需要首先使用矩阵,然后将矩阵转换为TIBLE。以下是一种方法:

library(tibble)

teams <- c("arsenal", "chelsea", "spurs")
derbies <- c("london", "north-london", "london")
mx <- matrix("self", length(teams), length(teams))
mx[lower.tri(mx)] <- mx[upper.tri(mx)] <- derbies
df_derbies <- as_tibble(cbind(teams, mx), .name_repair = function(x) c("teams", teams))
库(TIBLE)
团队