我可以删除两列 R 中的重复组合吗
Can I remove duplicate combinations across two columns R
我有一个看起来像这样的数据集
firm1 firm2
A B
A D
A G
B A
D A
G A
如您所见,它给出了独特的信息,但组合仍然相同。
我想过滤掉独特的组合,所以我的数据集看起来像这样。
firm1 firm2
A B
A D
A G
如何过滤掉这些重复(但相反)的组合?
我会建议这种 base R
方法:
#Data
df <- structure(list(firm1 = c("A", "A", "A", "B", "D", "G"), firm2 = c("B",
"D", "G", "A", "A", "A")), row.names = c(NA, -6L), class = "data.frame")
代码:
df[!duplicated(lapply(strsplit(paste0(df$firm1,df$firm2),split = ''),sort)),]
输出:
firm1 firm2
1 A B
2 A D
3 A G
这是一个使用 igraph
包
的解决方案
library(igraph)
setNames(unique(as_data_frame(graph_from_data_frame(df, directed = FALSE))), names(df))
这给出了
firm1 firm2
1 A B
2 A D
3 A G
我有一个看起来像这样的数据集
firm1 firm2
A B
A D
A G
B A
D A
G A
如您所见,它给出了独特的信息,但组合仍然相同。
我想过滤掉独特的组合,所以我的数据集看起来像这样。
firm1 firm2
A B
A D
A G
如何过滤掉这些重复(但相反)的组合?
我会建议这种 base R
方法:
#Data
df <- structure(list(firm1 = c("A", "A", "A", "B", "D", "G"), firm2 = c("B",
"D", "G", "A", "A", "A")), row.names = c(NA, -6L), class = "data.frame")
代码:
df[!duplicated(lapply(strsplit(paste0(df$firm1,df$firm2),split = ''),sort)),]
输出:
firm1 firm2
1 A B
2 A D
3 A G
这是一个使用 igraph
包
library(igraph)
setNames(unique(as_data_frame(graph_from_data_frame(df, directed = FALSE))), names(df))
这给出了
firm1 firm2
1 A B
2 A D
3 A G