有没有办法像这样清理数据帧?

时间:2016-07-06 09:07:22

标签: r

所以,我目前没有具体的数据,但我对这类问题感到好奇。

让我们假设我的数据框如下所示:

Name                  Number                   Sum
What (feat.Drake)      1A                      100
What                   1A                      100
What (Radio Edit)      1A                      100
What (I Remix)         1B                      200
What (Remastered)      1B                      200

这变成了:

Name                  Number                   Sum
What (feat.Drake)      1A                      300
What (I Remix)         1B                      400

所以,我试图在那里做的是总结数字和。但是,名称无法删除,因此我保留了数据框中出现的第一个名称。

任何形式的帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

我们可以使用dplyr

 library(dplyr)
 df1 %>%
    group_by(Number) %>%
    summarise(Name = first(Name), Sum = sum(Sum))    
 #  Number              Name   Sum     
 #   <chr>             <chr> <int>
 #1     1A What (feat.Drake)   300
 #2     1B    What (I Remix)   400

答案 1 :(得分:0)

这是一个基本的R方法。它有点罗嗦,但有效:

cbind("Name"=df$Name[!duplicated(df$Number)], aggregate(Sum ~ Number, data=df, sum))
               name Number Sum
1 What_(feat.Drake)     1A 300
2    What_(I_Remix)     1B 400

像往常一样,aggregate按组获得总和。按组分类的第一个名称由duplicated标识,并使用子集[提取。这些结果与cbind结合使用。最后,我在cbind内添加了Name变量名称。

相关问题