2016-02-11 28 views
1

放重複的行

x=c(1,2,2,3,4,1) 
y=c("A","B","C","D","E","F") 
df=data.frame(x,y) 



df 
     x y 
    1 1 A 
    2 2 B 
    3 2 C 
    4 3 D 
    5 4 E 
    6 1 F 

我怎麼可以把重複的行,在不同的數據該數據幀幀 這樣的:

df1 
    x y 
    1 A 
    1 F 

df2 
    x y 
    2 B 
    2 C 

謝謝你幫助

+1

檢查'?split''分裂(DF,F = $ DF x)' –

+0

,你將不得不刪除非重複行的數據幀後 –

+0

@Veerendra Gadekar你能幫助這個問題: https://stackoverflow.com/questions/45149683/matrix-division-in-several -dataframes-so-that-each-dataframe-containing-duplicate-r – Hibu

回答

3

你可以使用split

split(df, f = df$x) 

f = df$x用於指定分組列有關詳細信息,

刪除不重複的行 檢查?split你可以使用

mylist = split(df, f = df$x)[df$x[duplicated(df$x)]] 
names(mylist) = c('df1', 'df2') 
list2env(mylist,envir=.GlobalEnv) # to separate the data frames 
+1

謝謝你,它的作品! – Math