Reputation: 75
I am new to R and I have data like below
NAME
----
Balachandra
Sunita
Kali
Jagmeet
I would like to make it as
NAME1 NAME2
-----------------------
Balachandra Balachandra
Balachandra Sunita
Balachandra Kali
Balachandra Jagmeet
Sunita Balachandra
Sunita Sunita
Sunita Kali
Sunita Jagmeet
Kali Balachandra
Kali Sunita
Kali Kali
Kali Jagmeet
Jagmeet Balachandra
Jagmeet Sunita
Jagmeet Kali
Jagmeet Jagmeet
To have all possible combinations of Names
Any idea how to do that?
Upvotes: 1
Views: 60
Reputation: 887851
We can use expand.grid
expand.grid(NAME1=df1$NAME, NAME = df1$NAME)[2:1]
# NAME NAME1
#1 Balachandra Balachandra
#2 Balachandra Sunita
#3 Balachandra Kali
#4 Balachandra Jagmeet
#5 Sunita Balachandra
#6 Sunita Sunita
#7 Sunita Kali
#8 Sunita Jagmeet
#9 Kali Balachandra
#10 Kali Sunita
#11 Kali Kali
#12 Kali Jagmeet
#13 Jagmeet Balachandra
#14 Jagmeet Sunita
#15 Jagmeet Kali
#16 Jagmeet Jagmeet
Or use CJ
from data.table
library(data.table)
setDT(df1, key = "Name")[CJ(Name, Name)]
df1 <- data.frame(NAME = c("Balachandra", "Sunita", "Kali",
"Jagmeet"), stringsAsFactors=FALSE)
Upvotes: 2