如何限制full_join()重复? - R.

时间:2017-04-05 18:53:26

标签: r tidyverse

我是新手R程序员。以下是我正在使用的数据框。 我目前遇到来自full_join()的{​​{1}}的过滤问题。

tidyverse

enter image description here

我目前正在执行以下操作来执行library(tidyverse) set.seed(1234) df <- data.frame( trial = rep(0:1, each = 8), sex = rep(c('M','F'), 4), participant = rep(1:4, 4), x = runif(16, 1, 10), y = runif(16, 1, 10)) df

full_join()

我限制结果以获得试验之间同一参与者的积分组合

df <- df %>% mutate(k = 1)
df <- df %>% 
   full_join(df, by = "k") 

enter image description here

在这一步,我遇到了麻烦。我不关心积分的顺序。如何将重复项压缩成一行?

谢谢

1 个答案:

答案 0 :(得分:2)

根据您考虑的列,使用复制功能。第一个将基于前5列清除重复项。最后一个将基于

清除重复项
df3[!duplicated(df3[,1:5]),]

df3[!duplicated(df3[,7:11]),]