提取重复数据框子集的唯一值

时间:2017-11-13 16:23:56

标签: r dplyr

我有一个相当大的数据集(c。5000万行乘6列),2列有重复值,其中1列是另一列的子集。

对于Instance,请按如下方式获取数据帧: enter image description here

我想获得如下数据框:

enter image description here

我在上面的示例中使用了以下代码:

disp< - unique(mtcars $ disp) cyl< - unique(mtcars $ cyl)

new_data< - data.frame(1:length(disp),1:length(disp)) new_data $ disp< - disp

for(i in 1:length(disp)){

new_data $ cyl [i]< - mtcars $ cyl [grep(disp [i],mtcars $ disp)] }

但是当我尝试在大型数据集中复制它时,这是行不通的(RAM是一个可能的问题,因为我的机器并不是最强大的。)

我的问题是,是否有更好的方法对大型数据集进行同样的练习?

1 个答案:

答案 0 :(得分:0)

对我来说,看起来你想要所有独特的disp和cyl组合。为此,我建议这样做:

DF:

car       cyl        disp
Ford      32          322  
Ford      32          322
Mazda     12          212

- 代码:

library(dplyr)
output <- df %>% group_by(cyl,disp) %>% 
summarise(car_name = paste(car, collapse = ","))

输出:

cyl     disp      car
32      322       Ford,Ford
12      212       Mazda