Nic*_*den 3 combinations r dplyr
我是新手R程序员.我有以下一系列要点.
df <- data.frame(x = c(1 , 2, 3, 4), y = c(6 , 3, 7, 5))
df <- df %>% mutate(k = 1)
df <- df %>% full_join(df, by = 'k')
df <- subset(df, select = c('x.x', 'y.x', 'x.y', 'y.y'))
df
Run Code Online (Sandbox Code Playgroud)
有没有办法选择"独特"点?(点的顺序无关紧要)
编辑:
x.x y.x x.y y.y
1 6 2 3
2 3 3 7
.
.
.
Run Code Online (Sandbox Code Playgroud)
(我改变了2到7来澄清问题)
使用data.table(并从OP的初始工作df):
library(data.table)
setDT(df)
df[, r := .I ]
df[df, on=.(r > r), nomatch=0]
x y r i.x i.y
1: 2 3 1 1 6
2: 3 2 1 1 6
3: 4 5 1 1 6
4: 3 2 2 2 3
5: 4 5 2 2 3
6: 4 5 3 3 2
Run Code Online (Sandbox Code Playgroud)
这是行号的"非等联接".在x[i, on=.(r > r)]左边r指的是行x和右边的一行到一行i.名为like的列i.*取自i.
Data.table连接,它们的形式x[i],用于i查找行的行x.该nomatch=0选项会删除i不匹配的行.