我有一个相当大的数据集(c。5000万行乘6列),2列有重复值,其中1列是另一列的子集。
对于Instance,请按如下方式获取数据帧: 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是一个可能的问题,因为我的机器并不是最强大的。)
我的问题是,是否有更好的方法对大型数据集进行同样的练习?
答案 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