我有一个数据框,其中包含两列具有相同类型的值,例如:
df <-data.frame(c("a", "a", "a", "c", "c", "c"), c("a", "b", "c", "a", "b", "c"), stringsAsFactors=F)
colnames(df)<-c("c1", "c2")
df
# c1 c2
# 1 a a
# 2 a b
# 3 a c
# 4 c a
# 5 c b
# 6 c c
我想删除重复的组合条目,以便每行代表两个值的唯一对,无论它们出现在哪一列中。同时,我不想混合使用条目-第1列条目应留在第2列,第2列条目应留在第2列:
# c1 c2
# 1 a a
# 2 a b
# 3 a c
# 4 c b
# 5 c c
我尝试过unique(as.data.frame(t(apply(df, 1, sort))))
,但这混淆了列的原始标识(“ b”不应出现在第1列中,它仅属于第2列):
df_unique <- unique(as.data.frame(t(apply(df, 1, sort))))
rownames(df_unique) <- 1:nrow(df_unique)
df_unique
V1 V2
# 1 a a
# 2 a b
# 3 a c
# 4 b c
# 5 c c
我该如何解决这个问题?